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 <string>
37 #include <system_error>
38 #include <tuple>
39 #include <type_traits>
40 #include <vulkan/vulkan.h>
41 
42 #if 17 <= VULKAN_HPP_CPP_VERSION
43 #include <string_view>
44 #endif
45 
46 #if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47 # if !defined(VULKAN_HPP_NO_SMART_HANDLE)
48 #  define VULKAN_HPP_NO_SMART_HANDLE
49 # endif
50 #else
51 # include <memory>
52 # include <vector>
53 #endif
54 
55 #if !defined(VULKAN_HPP_ASSERT)
56 # include <cassert>
57 # define VULKAN_HPP_ASSERT   assert
58 #endif
59 
60 #if !defined(VULKAN_HPP_ASSERT_ON_RESULT)
61 # define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
62 #endif
63 
64 #if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL)
65 # define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
66 #endif
67 
68 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
69 #  if defined( __linux__ ) || defined( __APPLE__ )
70 #    include <dlfcn.h>
71 #  elif defined( _WIN32 )
72 typedef struct HINSTANCE__ * HINSTANCE;
73 #    if defined( _WIN64 )
74 typedef int64_t( __stdcall * FARPROC )();
75 #    else
76 typedef int( __stdcall * FARPROC )();
77 #    endif
78 extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
79 extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
80 extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
81 #  endif
82 #endif
83 
84 #if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( <compare> )
85 # define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
86 #endif
87 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88 # include <compare>
89 #endif
90 
91 
92 static_assert( VK_HEADER_VERSION ==  156 , "Wrong VK_HEADER_VERSION!" );
93 
94 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
95 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
96 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
97 # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
98 #  define VULKAN_HPP_TYPESAFE_CONVERSION
99 # endif
100 #endif
101 
102 // <tuple> includes <sys/sysmacros.h> through some other header
103 // this results in major(x) being resolved to gnu_dev_major(x)
104 // which is an expression in a constructor initializer list.
105 #if defined(major)
106   #undef major
107 #endif
108 #if defined(minor)
109   #undef minor
110 #endif
111 
112 // Windows defines MemoryBarrier which is deprecated and collides
113 // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
114 #if defined(MemoryBarrier)
115   #undef MemoryBarrier
116 #endif
117 
118 #if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
119 # if defined(__clang__)
120 #  if __has_feature(cxx_unrestricted_unions)
121 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
122 #  endif
123 # elif defined(__GNUC__)
124 #  define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
125 #  if 40600 <= GCC_VERSION
126 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
127 #  endif
128 # elif defined(_MSC_VER)
129 #  if 1900 <= _MSC_VER
130 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
131 #  endif
132 # endif
133 #endif
134 
135 #if !defined(VULKAN_HPP_INLINE)
136 # if defined(__clang__)
137 #  if __has_attribute(always_inline)
138 #   define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
139 #  else
140 #   define VULKAN_HPP_INLINE inline
141 #  endif
142 # elif defined(__GNUC__)
143 #  define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
144 # elif defined(_MSC_VER)
145 #  define VULKAN_HPP_INLINE inline
146 # else
147 #  define VULKAN_HPP_INLINE inline
148 # endif
149 #endif
150 
151 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
152 # define VULKAN_HPP_TYPESAFE_EXPLICIT
153 #else
154 # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
155 #endif
156 
157 #if defined(__cpp_constexpr)
158 # define VULKAN_HPP_CONSTEXPR constexpr
159 # if __cpp_constexpr >= 201304
160 #  define VULKAN_HPP_CONSTEXPR_14  constexpr
161 # else
162 #  define VULKAN_HPP_CONSTEXPR_14
163 # endif
164 # define VULKAN_HPP_CONST_OR_CONSTEXPR  constexpr
165 #else
166 # define VULKAN_HPP_CONSTEXPR
167 # define VULKAN_HPP_CONSTEXPR_14
168 # define VULKAN_HPP_CONST_OR_CONSTEXPR  const
169 #endif
170 
171 #if !defined(VULKAN_HPP_NOEXCEPT)
172 # if defined(_MSC_VER) && (_MSC_VER <= 1800)
173 #  define VULKAN_HPP_NOEXCEPT
174 # else
175 #  define VULKAN_HPP_NOEXCEPT noexcept
176 #  define VULKAN_HPP_HAS_NOEXCEPT 1
177 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
178 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
179 #  else
180 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
181 #  endif
182 # endif
183 #endif
184 
185 #if 14 <= VULKAN_HPP_CPP_VERSION
186 #  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
187 #else
188 #  define VULKAN_HPP_DEPRECATED( msg )
189 #endif
190 
191 #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
192 #  define VULKAN_HPP_NODISCARD [[nodiscard]]
193 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
194 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
195 #  else
196 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
197 #  endif
198 #else
199 #  define VULKAN_HPP_NODISCARD
200 #  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
201 #endif
202 
203 #if !defined(VULKAN_HPP_NAMESPACE)
204 #define VULKAN_HPP_NAMESPACE vk
205 #endif
206 
207 #define VULKAN_HPP_STRINGIFY2(text) #text
208 #define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
209 #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
210 
211 namespace VULKAN_HPP_NAMESPACE
212 {
213 
214 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
215   template <typename T>
216   class ArrayProxy
217   {
218   public:
ArrayProxy()219     VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
220       : m_count( 0 )
221       , m_ptr( nullptr )
222     {}
223 
ArrayProxy(std::nullptr_t)224     VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
225       : m_count( 0 )
226       , m_ptr( nullptr )
227     {}
228 
ArrayProxy(T & value)229     ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
230       : m_count( 1 )
231       , m_ptr( &value )
232     {}
233 
234     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(typename std::remove_const<T>::type & value)235     ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
236       : m_count( 1 )
237       , m_ptr( &value )
238     {}
239 
ArrayProxy(uint32_t count,T * ptr)240     ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
241       : m_count( count )
242       , m_ptr( ptr )
243     {}
244 
245     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)246     ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
247       : m_count( count )
248       , m_ptr( ptr )
249     {}
250 
ArrayProxy(std::initializer_list<T> const & list)251     ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
252       : m_count( static_cast<uint32_t>( list.size() ) )
253       , m_ptr( list.begin() )
254     {}
255 
256     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)257     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
258       : m_count( static_cast<uint32_t>( list.size() ) )
259       , m_ptr( list.begin() )
260     {}
261 
ArrayProxy(std::initializer_list<T> & list)262     ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
263       : m_count( static_cast<uint32_t>( list.size() ) )
264       , m_ptr( list.begin() )
265     {}
266 
267     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)268     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
269       : m_count( static_cast<uint32_t>( list.size() ) )
270       , m_ptr( list.begin() )
271     {}
272 
273     template <size_t N>
ArrayProxy(std::array<T,N> const & data)274     ArrayProxy( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
275       : m_count( N )
276       , m_ptr( data.data() )
277     {}
278 
279     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)280     ArrayProxy( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
281       : m_count( N )
282       , m_ptr( data.data() )
283     {}
284 
285     template <size_t N>
ArrayProxy(std::array<T,N> & data)286     ArrayProxy( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
287       : m_count( N )
288       , m_ptr( data.data() )
289     {}
290 
291     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)292     ArrayProxy( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
293       : m_count( N )
294       , m_ptr( data.data() )
295     {}
296 
297     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> const & data)298     ArrayProxy( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
299       : m_count( static_cast<uint32_t>( data.size() ) )
300       , m_ptr( data.data() )
301     {}
302 
303     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
304               typename B      = T,
305               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> const & data)306     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
307       : m_count( static_cast<uint32_t>( data.size() ) )
308       , m_ptr( data.data() )
309     {}
310 
311     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> & data)312     ArrayProxy( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
313       : m_count( static_cast<uint32_t>( data.size() ) )
314       , m_ptr( data.data() )
315     {}
316 
317     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
318               typename B      = T,
319               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> & data)320     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
321       : m_count( static_cast<uint32_t>( data.size() ) )
322       , m_ptr( data.data() )
323     {}
324 
begin() const325     const T * begin() const VULKAN_HPP_NOEXCEPT
326     {
327       return m_ptr;
328     }
329 
end() const330     const T * end() const VULKAN_HPP_NOEXCEPT
331     {
332       return m_ptr + m_count;
333     }
334 
front() const335     const T & front() const VULKAN_HPP_NOEXCEPT
336     {
337       VULKAN_HPP_ASSERT( m_count && m_ptr );
338       return *m_ptr;
339     }
340 
back() const341     const T & back() const VULKAN_HPP_NOEXCEPT
342     {
343       VULKAN_HPP_ASSERT( m_count && m_ptr );
344       return *( m_ptr + m_count - 1 );
345     }
346 
empty() const347     bool empty() const VULKAN_HPP_NOEXCEPT
348     {
349       return ( m_count == 0 );
350     }
351 
size() const352     uint32_t size() const VULKAN_HPP_NOEXCEPT
353     {
354       return m_count;
355     }
356 
data() const357     T * data() const VULKAN_HPP_NOEXCEPT
358     {
359       return m_ptr;
360     }
361 
362   private:
363     uint32_t m_count;
364     T *      m_ptr;
365   };
366 
367   template <typename T>
368   class ArrayProxyNoTemporaries
369   {
370   public:
ArrayProxyNoTemporaries()371     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
372       : m_count( 0 )
373       , m_ptr( nullptr )
374     {}
375 
ArrayProxyNoTemporaries(std::nullptr_t)376     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
377       : m_count( 0 )
378       , m_ptr( nullptr )
379     {}
380 
381     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(typename std::remove_const<T>::type & value)382     ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
383       : m_count( 1 )
384       , m_ptr( &value )
385     {}
386 
ArrayProxyNoTemporaries(uint32_t count,T * ptr)387     ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
388       : m_count( count )
389       , m_ptr( ptr )
390     {}
391 
392     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)393     ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
394       : m_count( count )
395       , m_ptr( ptr )
396     {}
397 
ArrayProxyNoTemporaries(std::initializer_list<T> const & list)398     ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
399       : m_count( static_cast<uint32_t>( list.size() ) )
400       , m_ptr( list.begin() )
401     {}
402 
403     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)404     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
405       : m_count( static_cast<uint32_t>( list.size() ) )
406       , m_ptr( list.begin() )
407     {}
408 
ArrayProxyNoTemporaries(std::initializer_list<T> & list)409     ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
410       : m_count( static_cast<uint32_t>( list.size() ) )
411       , m_ptr( list.begin() )
412     {}
413 
414     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)415     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
416       : m_count( static_cast<uint32_t>( list.size() ) )
417       , m_ptr( list.begin() )
418     {}
419 
420     ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) VULKAN_HPP_NOEXCEPT = delete;
421     ArrayProxyNoTemporaries( std::initializer_list<T> && list ) VULKAN_HPP_NOEXCEPT       = delete;
422 
423     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> const & data)424     ArrayProxyNoTemporaries( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
425       : m_count( N )
426       , m_ptr( data.data() )
427     {}
428 
429     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)430     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
431       : m_count( N )
432       , m_ptr( data.data() )
433     {}
434 
435     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> & data)436     ArrayProxyNoTemporaries( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
437       : m_count( N )
438       , m_ptr( data.data() )
439     {}
440 
441     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)442     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
443       : m_count( N )
444       , m_ptr( data.data() )
445     {}
446 
447     template <size_t N>
448     ArrayProxyNoTemporaries( std::array<T, N> const && data ) VULKAN_HPP_NOEXCEPT = delete;
449     template <size_t N>
450     ArrayProxyNoTemporaries( std::array<T, N> && data ) VULKAN_HPP_NOEXCEPT       = delete;
451 
452     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> const & data)453     ArrayProxyNoTemporaries( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
454       : m_count( static_cast<uint32_t>( data.size() ) )
455       , m_ptr( data.data() )
456     {}
457 
458     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
459               typename B      = T,
460               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> const & data)461     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
462       : m_count( static_cast<uint32_t>( data.size() ) )
463       , m_ptr( data.data() )
464     {}
465 
466     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> & data)467     ArrayProxyNoTemporaries( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
468       : m_count( static_cast<uint32_t>( data.size() ) )
469       , m_ptr( data.data() )
470     {}
471 
472     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
473               typename B      = T,
474               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> & data)475     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
476       : m_count( static_cast<uint32_t>( data.size() ) )
477       , m_ptr( data.data() )
478     {}
479 
480     ArrayProxyNoTemporaries( std::vector<T> const && data ) VULKAN_HPP_NOEXCEPT = delete;
481     ArrayProxyNoTemporaries( std::vector<T> && data ) VULKAN_HPP_NOEXCEPT       = delete;
482 
begin() const483     const T * begin() const VULKAN_HPP_NOEXCEPT
484     {
485       return m_ptr;
486     }
487 
end() const488     const T * end() const VULKAN_HPP_NOEXCEPT
489     {
490       return m_ptr + m_count;
491     }
492 
front() const493     const T & front() const VULKAN_HPP_NOEXCEPT
494     {
495       VULKAN_HPP_ASSERT( m_count && m_ptr );
496       return *m_ptr;
497     }
498 
back() const499     const T & back() const VULKAN_HPP_NOEXCEPT
500     {
501       VULKAN_HPP_ASSERT( m_count && m_ptr );
502       return *( m_ptr + m_count - 1 );
503     }
504 
empty() const505     bool empty() const VULKAN_HPP_NOEXCEPT
506     {
507       return ( m_count == 0 );
508     }
509 
size() const510     uint32_t size() const VULKAN_HPP_NOEXCEPT
511     {
512       return m_count;
513     }
514 
data() const515     T * data() const VULKAN_HPP_NOEXCEPT
516     {
517       return m_ptr;
518     }
519 
520   private:
521     uint32_t m_count;
522     T *      m_ptr;
523   };
524 #endif
525 
526   template <typename T, size_t N>
527   class ArrayWrapper1D : public std::array<T,N>
528   {
529   public:
ArrayWrapper1D()530     VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT
531       : std::array<T, N>()
532     {}
533 
ArrayWrapper1D(std::array<T,N> const & data)534     VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array<T,N> const& data) VULKAN_HPP_NOEXCEPT
535       : std::array<T, N>(data)
536     {}
537 
538 #if defined(_WIN32) && !defined(_WIN64)
operator [](int index) const539     VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT
540     {
541       return std::array<T, N>::operator[](index);
542     }
543 
operator [](int index)544     VULKAN_HPP_CONSTEXPR T & operator[](int index) VULKAN_HPP_NOEXCEPT
545     {
546       return std::array<T, N>::operator[](index);
547     }
548 #endif
549 
operator T const*() const550     operator T const* () const VULKAN_HPP_NOEXCEPT
551     {
552       return this->data();
553     }
554 
operator T*()555     operator T * () VULKAN_HPP_NOEXCEPT
556     {
557       return this->data();
558     }
559 
560     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string() const561     operator std::string() const
562     {
563       return std::string( this->data() );
564     }
565 
566 #if 17 <= VULKAN_HPP_CPP_VERSION
567     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string_view() const568     operator std::string_view() const
569     {
570       return std::string_view( this->data() );
571     }
572 #endif
573 
574     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <(ArrayWrapper1D<char,N> const & rhs) const575     bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
576     {
577       return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
578     }
579 
580     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <=(ArrayWrapper1D<char,N> const & rhs) const581     bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
582     {
583       return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
584     }
585 
586     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >(ArrayWrapper1D<char,N> const & rhs) const587     bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
588     {
589       return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
590     }
591 
592     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >=(ArrayWrapper1D<char,N> const & rhs) const593     bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
594     {
595       return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
596     }
597 
598     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator ==(ArrayWrapper1D<char,N> const & rhs) const599     bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
600     {
601       return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
602     }
603 
604     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator !=(ArrayWrapper1D<char,N> const & rhs) const605     bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
606     {
607       return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
608     }
609   };
610 
611   // specialization of relational operators between std::string and arrays of chars
612   template <size_t N>
operator <(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)613   bool operator<(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
614   {
615     return lhs < rhs.data();
616   }
617 
618   template <size_t N>
operator <=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)619   bool operator<=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
620   {
621     return lhs <= rhs.data();
622   }
623 
624   template <size_t N>
operator >(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)625   bool operator>(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
626   {
627     return lhs > rhs.data();
628   }
629 
630   template <size_t N>
operator >=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)631   bool operator>=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
632   {
633     return lhs >= rhs.data();
634   }
635 
636   template <size_t N>
operator ==(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)637   bool operator==(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
638   {
639     return lhs == rhs.data();
640   }
641 
642   template <size_t N>
operator !=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)643   bool operator!=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
644   {
645     return lhs != rhs.data();
646   }
647 
648   template <typename T, size_t N, size_t M>
649   class ArrayWrapper2D : public std::array<ArrayWrapper1D<T,M>,N>
650   {
651   public:
ArrayWrapper2D()652     VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT
653       : std::array<ArrayWrapper1D<T,M>, N>()
654     {}
655 
ArrayWrapper2D(std::array<std::array<T,M>,N> const & data)656     VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array<std::array<T,M>,N> const& data) VULKAN_HPP_NOEXCEPT
657       : std::array<ArrayWrapper1D<T,M>, N>(*reinterpret_cast<std::array<ArrayWrapper1D<T,M>,N> const*>(&data))
658     {}
659   };
660 
661   template <typename FlagBitsType> struct FlagTraits
662   {
663     enum { allFlags = 0 };
664   };
665 
666   template <typename BitType>
667   class Flags
668   {
669   public:
670     using MaskType = typename std::underlying_type<BitType>::type;
671 
672     // constructors
Flags()673     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT
674       : m_mask(0)
675     {}
676 
Flags(BitType bit)677     VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT
678       : m_mask(static_cast<MaskType>(bit))
679     {}
680 
Flags(Flags<BitType> const & rhs)681     VULKAN_HPP_CONSTEXPR Flags(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
682       : m_mask(rhs.m_mask)
683     {}
684 
Flags(MaskType flags)685     VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT
686       : m_mask(flags)
687     {}
688 
689     // relational operators
690 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
691     auto operator<=>(Flags<BitType> const&) const = default;
692 #else
operator <(Flags<BitType> const & rhs) const693     VULKAN_HPP_CONSTEXPR bool operator<(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
694     {
695       return m_mask < rhs.m_mask;
696     }
697 
operator <=(Flags<BitType> const & rhs) const698     VULKAN_HPP_CONSTEXPR bool operator<=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
699     {
700       return m_mask <= rhs.m_mask;
701     }
702 
operator >(Flags<BitType> const & rhs) const703     VULKAN_HPP_CONSTEXPR bool operator>(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
704     {
705       return m_mask > rhs.m_mask;
706     }
707 
operator >=(Flags<BitType> const & rhs) const708     VULKAN_HPP_CONSTEXPR bool operator>=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
709     {
710       return m_mask >= rhs.m_mask;
711     }
712 
operator ==(Flags<BitType> const & rhs) const713     VULKAN_HPP_CONSTEXPR bool operator==(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
714     {
715       return m_mask == rhs.m_mask;
716     }
717 
operator !=(Flags<BitType> const & rhs) const718     VULKAN_HPP_CONSTEXPR bool operator!=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
719     {
720       return m_mask != rhs.m_mask;
721     }
722 #endif
723 
724     // logical operator
operator !() const725     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
726     {
727       return !m_mask;
728     }
729 
730     // bitwise operators
operator &(Flags<BitType> const & rhs) const731     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
732     {
733       return Flags<BitType>(m_mask & rhs.m_mask);
734     }
735 
operator |(Flags<BitType> const & rhs) const736     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
737     {
738       return Flags<BitType>(m_mask | rhs.m_mask);
739     }
740 
operator ^(Flags<BitType> const & rhs) const741     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
742     {
743       return Flags<BitType>(m_mask ^ rhs.m_mask);
744     }
745 
operator ~() const746     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
747     {
748       return Flags<BitType>(m_mask ^ FlagTraits<BitType>::allFlags);
749     }
750 
751     // assignment operators
operator =(Flags<BitType> const & rhs)752     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
753     {
754       m_mask = rhs.m_mask;
755       return *this;
756     }
757 
operator |=(Flags<BitType> const & rhs)758     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
759     {
760       m_mask |= rhs.m_mask;
761       return *this;
762     }
763 
operator &=(Flags<BitType> const & rhs)764     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
765     {
766       m_mask &= rhs.m_mask;
767       return *this;
768     }
769 
operator ^=(Flags<BitType> const & rhs)770     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
771     {
772       m_mask ^= rhs.m_mask;
773       return *this;
774     }
775 
776     // cast operators
operator bool() const777     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
778     {
779       return !!m_mask;
780     }
781 
operator MaskType() const782     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
783     {
784         return m_mask;
785     }
786 
787   private:
788     MaskType  m_mask;
789   };
790 
791 #if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
792   // relational operators only needed for pre C++20
793   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)794   VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
795   {
796     return flags.operator>( bit );
797   }
798 
799   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)800   VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
801   {
802     return flags.operator>=( bit );
803   }
804 
805   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)806   VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
807   {
808     return flags.operator<( bit );
809   }
810 
811   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)812   VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
813   {
814     return flags.operator<=(bit);
815   }
816 
817   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)818   VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
819   {
820     return flags.operator==( bit );
821   }
822 
823   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)824   VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
825   {
826     return flags.operator!=( bit );
827   }
828 #endif
829 
830   // bitwise operators
831   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)832   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
833   {
834     return flags.operator&( bit );
835   }
836 
837   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)838   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
839   {
840     return flags.operator|( bit );
841   }
842 
843   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)844   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
845   {
846     return flags.operator^( bit );
847   }
848 
849   template <typename RefType>
850   class Optional
851   {
852   public:
Optional(RefType & reference)853     Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; }
Optional(RefType * ptr)854     Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; }
Optional(std::nullptr_t)855     Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; }
856 
operator RefType*() const857     operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator ->() const858     RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator bool() const859     explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; }
860 
861   private:
862     RefType *m_ptr;
863   };
864 
865   template <typename X, typename Y> struct StructExtends { enum { value = false }; };
866 
867   template<typename Type, class...>
868   struct IsPartOfStructureChain
869   {
870     static const bool valid = false;
871   };
872 
873   template<typename Type, typename Head, typename... Tail>
874   struct IsPartOfStructureChain<Type, Head, Tail...>
875   {
876     static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
877   };
878 
879   template <size_t Index, typename T, typename... ChainElements>
880   struct StructureChainContains
881   {
882     static const bool value = std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
883                               StructureChainContains<Index - 1, T, ChainElements...>::value;
884   };
885 
886   template <typename T, typename... ChainElements>
887   struct StructureChainContains<0, T, ChainElements...>
888   {
889     static const bool value = std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
890   };
891 
892   template <size_t Index, typename... ChainElements>
893   struct StructureChainValidation
894   {
895     using TestType = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
896     static const bool valid =
897       StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
898       ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
899       StructureChainValidation<Index - 1, ChainElements...>::valid;
900   };
901 
902   template <typename... ChainElements>
903   struct StructureChainValidation<0, ChainElements...>
904   {
905     static const bool valid = true;
906   };
907 
908   template <typename... ChainElements>
909   class StructureChain : public std::tuple<ChainElements...>
910   {
911   public:
StructureChain()912     StructureChain() VULKAN_HPP_NOEXCEPT
913     {
914       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
915                      "The structure chain is not valid!" );
916       link<sizeof...( ChainElements ) - 1>();
917     }
918 
StructureChain(StructureChain const & rhs)919     StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
920     {
921       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
922                      "The structure chain is not valid!" );
923       link<sizeof...( ChainElements ) - 1>();
924     }
925 
StructureChain(StructureChain && rhs)926     StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT
927       : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
928     {
929       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
930                      "The structure chain is not valid!" );
931       link<sizeof...( ChainElements ) - 1>();
932     }
933 
StructureChain(ChainElements const &...elems)934     StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
935     {
936       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
937                      "The structure chain is not valid!" );
938       link<sizeof...( ChainElements ) - 1>();
939     }
940 
operator =(StructureChain const & rhs)941     StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
942     {
943       std::tuple<ChainElements...>::operator=( rhs );
944       link<sizeof...( ChainElements ) - 1>();
945       return *this;
946     }
947 
948     StructureChain & operator=( StructureChain && rhs ) = delete;
949 
950     template <typename T, size_t Which = 0>
951     T & get() VULKAN_HPP_NOEXCEPT
952     {
953       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...>&>( *this ) );
954     }
955 
956     template <typename T, size_t Which = 0>
957     T const & get() const VULKAN_HPP_NOEXCEPT
958     {
959       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...>&>( *this ) );
960     }
961 
962     template <typename T0, typename T1, typename... Ts>
get()963     std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
964     {
965       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
966     }
967 
968     template <typename T0, typename T1, typename... Ts>
get() const969     std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
970     {
971       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
972     }
973 
974     template <typename ClassType, size_t Which = 0>
relink()975     void relink() VULKAN_HPP_NOEXCEPT
976     {
977       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
978                      "Can't relink Structure that's not part of this StructureChain!" );
979       static_assert(
980         !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || (Which != 0),
981         "It's not allowed to have the first element unlinked!" );
982 
983       auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
984       VULKAN_HPP_ASSERT( !isLinked( pNext ) );
985       auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) );
986       pNext->pNext       = reinterpret_cast<VkBaseInStructure const*>(headElement.pNext);
987       headElement.pNext  = pNext;
988     }
989 
990     template <typename ClassType, size_t Which = 0>
unlink()991     void unlink() VULKAN_HPP_NOEXCEPT
992     {
993       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
994                      "Can't unlink Structure that's not part of this StructureChain!" );
995       static_assert(
996         !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || (Which != 0),
997         "It's not allowed to unlink the first element!" );
998 
999       unlink<sizeof...( ChainElements ) - 1>( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
1000     }
1001 
1002   private:
1003     template <int Index, typename T, int Which, typename, class First, class... Types>
1004     struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
1005     {};
1006 
1007     template <int Index, typename T, int Which, class First, class... Types>
1008     struct ChainElementIndex<Index,
1009                              T,
1010                              Which,
1011                              typename std::enable_if<!std::is_same<T, First>::value, void>::type,
1012                              First,
1013                              Types...> : ChainElementIndex<Index + 1, T, Which, void, Types...>
1014     {};
1015 
1016     template <int Index, typename T, int Which, class First, class... Types>
1017     struct ChainElementIndex<Index,
1018                              T,
1019                              Which,
1020                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1021                              First,
1022                              Types...> : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
1023     {};
1024 
1025     template <int Index, typename T, class First, class... Types>
1026     struct ChainElementIndex<Index,
1027                              T,
1028                              0,
1029                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1030                              First,
1031                              Types...> : std::integral_constant<int, Index>
1032     {};
1033 
isLinked(VkBaseInStructure const * pNext)1034     bool isLinked( VkBaseInStructure const * pNext )
1035     {
1036       VkBaseInStructure const * elementPtr = reinterpret_cast<VkBaseInStructure const*>(&std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) ) );
1037       while ( elementPtr )
1038       {
1039         if ( elementPtr->pNext == pNext )
1040         {
1041           return true;
1042         }
1043         elementPtr = elementPtr->pNext;
1044       }
1045       return false;
1046     }
1047 
1048     template <size_t Index>
link()1049     typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
1050     {
1051       auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1052       x.pNext  = &std::get<Index>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1053       link<Index - 1>();
1054     }
1055 
1056     template <size_t Index>
link()1057     typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
1058     {}
1059 
1060     template <size_t Index>
unlink(VkBaseOutStructure const * pNext)1061     typename std::enable_if<Index != 0, void>::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1062     {
1063       auto & element = std::get<Index>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1064       if ( element.pNext == pNext )
1065       {
1066         element.pNext = pNext->pNext;
1067       }
1068       else
1069       {
1070         unlink<Index - 1>( pNext );
1071       }
1072     }
1073 
1074     template <size_t Index>
unlink(VkBaseOutStructure const * pNext)1075     typename std::enable_if<Index == 0, void>::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1076     {
1077       auto & element = std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1078       if ( element.pNext == pNext )
1079       {
1080         element.pNext = pNext->pNext;
1081       }
1082       else
1083       {
1084         VULKAN_HPP_ASSERT( false );  // fires, if the ClassType member has already been unlinked !
1085       }
1086     }
1087   };
1088 
1089 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
1090   template <typename Type, typename Dispatch> class UniqueHandleTraits;
1091 
1092   template <typename Type, typename Dispatch>
1093   class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter
1094   {
1095   private:
1096     using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter;
1097 
1098   public:
1099     using element_type = Type;
1100 
UniqueHandle()1101     UniqueHandle()
1102       : Deleter()
1103       , m_value()
1104     {}
1105 
UniqueHandle(Type const & value,Deleter const & deleter=Deleter ())1106     explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
1107       : Deleter( deleter)
1108       , m_value( value )
1109     {}
1110 
1111     UniqueHandle( UniqueHandle const& ) = delete;
1112 
UniqueHandle(UniqueHandle && other)1113     UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1114       : Deleter( std::move( static_cast<Deleter&>( other ) ) )
1115       , m_value( other.release() )
1116     {}
1117 
~UniqueHandle()1118     ~UniqueHandle() VULKAN_HPP_NOEXCEPT
1119     {
1120       if ( m_value ) this->destroy( m_value );
1121     }
1122 
1123     UniqueHandle & operator=( UniqueHandle const& ) = delete;
1124 
operator =(UniqueHandle && other)1125     UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1126     {
1127       reset( other.release() );
1128       *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
1129       return *this;
1130     }
1131 
operator bool() const1132     explicit operator bool() const VULKAN_HPP_NOEXCEPT
1133     {
1134       return m_value.operator bool();
1135     }
1136 
operator ->() const1137     Type const* operator->() const VULKAN_HPP_NOEXCEPT
1138     {
1139       return &m_value;
1140     }
1141 
operator ->()1142     Type * operator->() VULKAN_HPP_NOEXCEPT
1143     {
1144       return &m_value;
1145     }
1146 
operator *() const1147     Type const& operator*() const VULKAN_HPP_NOEXCEPT
1148     {
1149       return m_value;
1150     }
1151 
operator *()1152     Type & operator*() VULKAN_HPP_NOEXCEPT
1153     {
1154       return m_value;
1155     }
1156 
get() const1157     const Type & get() const VULKAN_HPP_NOEXCEPT
1158     {
1159       return m_value;
1160     }
1161 
get()1162     Type & get() VULKAN_HPP_NOEXCEPT
1163     {
1164       return m_value;
1165     }
1166 
reset(Type const & value=Type ())1167     void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT
1168     {
1169       if ( m_value != value )
1170       {
1171         if ( m_value ) this->destroy( m_value );
1172         m_value = value;
1173       }
1174     }
1175 
release()1176     Type release() VULKAN_HPP_NOEXCEPT
1177     {
1178       Type value = m_value;
1179       m_value = nullptr;
1180       return value;
1181     }
1182 
swap(UniqueHandle<Type,Dispatch> & rhs)1183     void swap( UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1184     {
1185       std::swap(m_value, rhs.m_value);
1186       std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
1187     }
1188 
1189   private:
1190     Type    m_value;
1191   };
1192 
1193   template <typename UniqueType>
uniqueToRaw(std::vector<UniqueType> const & handles)1194   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw(std::vector<UniqueType> const& handles)
1195   {
1196     std::vector<typename UniqueType::element_type> newBuffer(handles.size());
1197     std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); });
1198     return newBuffer;
1199   }
1200 
1201   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)1202   VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1203   {
1204     lhs.swap( rhs );
1205   }
1206 #endif
1207 
1208 #if !defined(VK_NO_PROTOTYPES)
1209   class DispatchLoaderStatic
1210   {
1211   public:
1212 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const1213     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
1214     {
1215       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
1216     }
1217 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1218 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const1219     VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1220     {
1221       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
1222     }
1223 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const1224     VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1225     {
1226       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
1227     }
1228 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const1229     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT
1230     {
1231       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
1232     }
1233 
vkAcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo) const1234     VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1235     {
1236       return ::vkAcquireProfilingLockKHR( device, pInfo );
1237     }
1238 
1239 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const1240     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
1241     {
1242       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
1243     }
1244 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
1245 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const1246     VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1247     {
1248       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1249     }
1250 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1251     VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1252     {
1253       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1254     }
1255 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1256     VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT
1257     {
1258       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1259     }
1260 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const1261     VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT
1262     {
1263       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
1264     }
1265 
1266 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkBindAccelerationStructureMemoryKHR(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1267     VkResult vkBindAccelerationStructureMemoryKHR( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1268     {
1269       return ::vkBindAccelerationStructureMemoryKHR( device, bindInfoCount, pBindInfos );
1270     }
1271 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1272 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1273     VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1274     {
1275       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
1276     }
1277 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1278     VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1279     {
1280       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1281     }
1282 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1283     VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1284     {
1285       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
1286     }
1287 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1288     VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1289     {
1290       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
1291     }
1292 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1293     VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1294     {
1295       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1296     }
1297 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1298     VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1299     {
1300       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
1301     }
1302 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1303     VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1304     {
1305       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
1306     }
1307 
1308 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkBuildAccelerationStructureKHR(VkDevice device,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1309     VkResult vkBuildAccelerationStructureKHR( VkDevice device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1310     {
1311       return ::vkBuildAccelerationStructureKHR( device, infoCount, pInfos, ppOffsetInfos );
1312     }
1313 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1314 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const1315     void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
1316     {
1317       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
1318     }
1319 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1320     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1321     {
1322       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1323     }
1324 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const1325     void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
1326     {
1327       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
1328     }
1329 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const1330     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1331     {
1332       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
1333     }
1334 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const1335     void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1336     {
1337       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
1338     }
1339 
vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1340     void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1341     {
1342       return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1343     }
1344 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1345     void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1346     {
1347       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1348     }
1349 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1350     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1351     {
1352       return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1353     }
1354 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const1355     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
1356     {
1357       return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
1358     }
1359 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const1360     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
1361     {
1362       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
1363     }
1364 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const1365     void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
1366     {
1367       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
1368     }
1369 
vkCmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex) const1370     void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT
1371     {
1372       return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
1373     }
1374 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const1375     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
1376     {
1377       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
1378     }
1379 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const1380     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT
1381     {
1382       return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
1383     }
1384 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const1385     void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT
1386     {
1387       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
1388     }
1389 
vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides) const1390     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
1391     {
1392       return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
1393     }
1394 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const1395     void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT
1396     {
1397       return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
1398     }
1399 
vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2KHR * pBlitImageInfo) const1400     void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
1401     {
1402       return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
1403     }
1404 
1405 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureIndirectKHR(VkCommandBuffer commandBuffer,const VkAccelerationStructureBuildGeometryInfoKHR * pInfo,VkBuffer indirectBuffer,VkDeviceSize indirectOffset,uint32_t indirectStride) const1406     void vkCmdBuildAccelerationStructureIndirectKHR( VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, uint32_t indirectStride ) const VULKAN_HPP_NOEXCEPT
1407     {
1408       return ::vkCmdBuildAccelerationStructureIndirectKHR( commandBuffer, pInfo, indirectBuffer, indirectOffset, indirectStride );
1409     }
1410 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1411 
1412 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1413     void vkCmdBuildAccelerationStructureKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1414     {
1415       return ::vkCmdBuildAccelerationStructureKHR( commandBuffer, infoCount, pInfos, ppOffsetInfos );
1416     }
1417 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1418 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkBuffer scratch,VkDeviceSize scratchOffset) const1419     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
1420     {
1421       return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
1422     }
1423 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const1424     void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT
1425     {
1426       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
1427     }
1428 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1429     void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1430     {
1431       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
1432     }
1433 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1434     void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1435     {
1436       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
1437     }
1438 
1439 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo) const1440     void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1441     {
1442       return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
1443     }
1444 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1445 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkCopyAccelerationStructureModeKHR mode) const1446     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
1447     {
1448       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
1449     }
1450 
1451 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1452     void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1453     {
1454       return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
1455     }
1456 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1457 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const1458     void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1459     {
1460       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
1461     }
1462 
vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2KHR * pCopyBufferInfo) const1463     void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
1464     {
1465       return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
1466     }
1467 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1468     void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1469     {
1470       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
1471     }
1472 
vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo) const1473     void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
1474     {
1475       return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
1476     }
1477 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const1478     void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1479     {
1480       return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1481     }
1482 
vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2KHR * pCopyImageInfo) const1483     void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
1484     {
1485       return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
1486     }
1487 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1488     void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1489     {
1490       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
1491     }
1492 
vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo) const1493     void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
1494     {
1495       return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
1496     }
1497 
1498 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1499     void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1500     {
1501       return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
1502     }
1503 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1504 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const1505     void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1506     {
1507       return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
1508     }
1509 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1510     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1511     {
1512       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
1513     }
1514 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const1515     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1516     {
1517       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
1518     }
1519 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1520     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1521     {
1522       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
1523     }
1524 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1525     void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1526     {
1527       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
1528     }
1529 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1530     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
1531     {
1532       return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1533     }
1534 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1535     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
1536     {
1537       return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1538     }
1539 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const1540     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1541     {
1542       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
1543     }
1544 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const1545     void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1546     {
1547       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
1548     }
1549 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const1550     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1551     {
1552       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
1553     }
1554 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1555     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1556     {
1557       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
1558     }
1559 
vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1560     void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1561     {
1562       return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1563     }
1564 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1565     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1566     {
1567       return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1568     }
1569 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1570     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1571     {
1572       return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1573     }
1574 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1575     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1576     {
1577       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
1578     }
1579 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const1580     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT
1581     {
1582       return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
1583     }
1584 
vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1585     void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1586     {
1587       return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1588     }
1589 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1590     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1591     {
1592       return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1593     }
1594 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1595     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1596     {
1597       return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1598     }
1599 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1600     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1601     {
1602       return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1603     }
1604 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1605     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1606     {
1607       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
1608     }
1609 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const1610     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
1611     {
1612       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
1613     }
1614 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const1615     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1616     {
1617       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
1618     }
1619 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const1620     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1621     {
1622       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
1623     }
1624 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const1625     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1626     {
1627       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
1628     }
1629 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const1630     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1631     {
1632       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
1633     }
1634 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const1635     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1636     {
1637       return ::vkCmdEndRenderPass( commandBuffer );
1638     }
1639 
vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1640     void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1641     {
1642       return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
1643     }
1644 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1645     void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1646     {
1647       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
1648     }
1649 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1650     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1651     {
1652       return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1653     }
1654 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1655     void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1656     {
1657       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
1658     }
1659 
vkCmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1660     void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1661     {
1662       return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
1663     }
1664 
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const1665     void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
1666     {
1667       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
1668     }
1669 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1670     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1671     {
1672       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1673     }
1674 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const1675     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1676     {
1677       return ::vkCmdNextSubpass( commandBuffer, contents );
1678     }
1679 
vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1680     void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1681     {
1682       return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1683     }
1684 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1685     void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1686     {
1687       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1688     }
1689 
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) const1690     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
1691     {
1692       return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1693     }
1694 
vkCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1695     void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1696     {
1697       return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
1698     }
1699 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const1700     void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT
1701     {
1702       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
1703     }
1704 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const1705     void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
1706     {
1707       return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
1708     }
1709 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const1710     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT
1711     {
1712       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
1713     }
1714 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1715     void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1716     {
1717       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
1718     }
1719 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const1720     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
1721     {
1722       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
1723     }
1724 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const1725     void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT
1726     {
1727       return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1728     }
1729 
vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2KHR * pResolveImageInfo) const1730     void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
1731     {
1732       return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
1733     }
1734 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const1735     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
1736     {
1737       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
1738     }
1739 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const1740     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
1741     {
1742       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
1743     }
1744 
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const1745     void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
1746     {
1747       return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
1748     }
1749 
vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode) const1750     void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
1751     {
1752       return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
1753     }
1754 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const1755     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
1756     {
1757       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
1758     }
1759 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const1760     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
1761     {
1762       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
1763     }
1764 
vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable) const1765     void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
1766     {
1767       return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
1768     }
1769 
vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp) const1770     void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
1771     {
1772       return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
1773     }
1774 
vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable) const1775     void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
1776     {
1777       return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
1778     }
1779 
vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable) const1780     void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
1781     {
1782       return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
1783     }
1784 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1785     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1786     {
1787       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
1788     }
1789 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1790     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1791     {
1792       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
1793     }
1794 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const1795     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
1796     {
1797       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
1798     }
1799 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1800     void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1801     {
1802       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
1803     }
1804 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const1805     void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
1806     {
1807       return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
1808     }
1809 
vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace) const1810     void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
1811     {
1812       return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
1813     }
1814 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const1815     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
1816     {
1817       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
1818     }
1819 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const1820     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
1821     {
1822       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1823     }
1824 
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const1825     VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1826     {
1827       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
1828     }
1829 
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const1830     VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
1831     {
1832       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
1833     }
1834 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const1835     VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1836     {
1837       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
1838     }
1839 
vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology) const1840     void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
1841     {
1842       return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
1843     }
1844 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const1845     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
1846     {
1847       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
1848     }
1849 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const1850     void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1851     {
1852       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1853     }
1854 
vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors) const1855     void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1856     {
1857       return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
1858     }
1859 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const1860     void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
1861     {
1862       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
1863     }
1864 
vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp) const1865     void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT
1866     {
1867       return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
1868     }
1869 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const1870     void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
1871     {
1872       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
1873     }
1874 
vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable) const1875     void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
1876     {
1877       return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
1878     }
1879 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const1880     void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
1881     {
1882       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
1883     }
1884 
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const1885     void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1886     {
1887       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1888     }
1889 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const1890     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
1891     {
1892       return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
1893     }
1894 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const1895     void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
1896     {
1897       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
1898     }
1899 
vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports) const1900     void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1901     {
1902       return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
1903     }
1904 
1905 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedBufferRegionKHR * pRaygenShaderBindingTable,const VkStridedBufferRegionKHR * pMissShaderBindingTable,const VkStridedBufferRegionKHR * pHitShaderBindingTable,const VkStridedBufferRegionKHR * pCallableShaderBindingTable,VkBuffer buffer,VkDeviceSize offset) const1906     void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1907     {
1908       return ::vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, buffer, offset );
1909     }
1910 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1911 
1912 #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) const1913     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
1914     {
1915       return ::vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
1916     }
1917 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1918 
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) const1919     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
1920     {
1921       return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth );
1922     }
1923 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const1924     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT
1925     {
1926       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
1927     }
1928 
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) const1929     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
1930     {
1931       return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1932     }
1933 
1934 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1935     void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1936     {
1937       return ::vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1938     }
1939 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1940 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1941     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1942     {
1943       return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1944     }
1945 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const1946     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
1947     {
1948       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
1949     }
1950 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const1951     void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1952     {
1953       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
1954     }
1955 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const1956     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
1957     {
1958       return ::vkCompileDeferredNV( device, pipeline, shader );
1959     }
1960 
1961 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureKHR(VkDevice device,const VkCopyAccelerationStructureInfoKHR * pInfo) const1962     VkResult vkCopyAccelerationStructureKHR( VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1963     {
1964       return ::vkCopyAccelerationStructureKHR( device, pInfo );
1965     }
1966 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1967 
1968 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureToMemoryKHR(VkDevice device,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1969     VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1970     {
1971       return ::vkCopyAccelerationStructureToMemoryKHR( device, pInfo );
1972     }
1973 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1974 
1975 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyMemoryToAccelerationStructureKHR(VkDevice device,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1976     VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1977     {
1978       return ::vkCopyMemoryToAccelerationStructureKHR( device, pInfo );
1979     }
1980 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1981 
1982 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure) const1983     VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1984     {
1985       return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
1986     }
1987 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1988 
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const1989     VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1990     {
1991       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
1992     }
1993 
1994 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const1995     VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
1996     {
1997       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
1998     }
1999 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2000 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const2001     VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT
2002     {
2003       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
2004     }
2005 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const2006     VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT
2007     {
2008       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
2009     }
2010 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const2011     VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT
2012     {
2013       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
2014     }
2015 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2016     VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2017     {
2018       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2019     }
2020 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const2021     VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT
2022     {
2023       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
2024     }
2025 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const2026     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT
2027     {
2028       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
2029     }
2030 
2031 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation) const2032     VkResult vkCreateDeferredOperationKHR( VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
2033     {
2034       return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
2035     }
2036 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2037 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const2038     VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
2039     {
2040       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
2041     }
2042 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const2043     VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT
2044     {
2045       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
2046     }
2047 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2048     VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2049     {
2050       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2051     }
2052 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2053     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2054     {
2055       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2056     }
2057 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const2058     VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT
2059     {
2060       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
2061     }
2062 
2063 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkCreateDirectFBSurfaceEXT(VkInstance instance,const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2064     VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2065     {
2066       return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2067     }
2068 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2069 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2070     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT
2071     {
2072       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2073     }
2074 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2075     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2076     {
2077       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2078     }
2079 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const2080     VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT
2081     {
2082       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
2083     }
2084 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const2085     VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
2086     {
2087       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
2088     }
2089 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const2090     VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT
2091     {
2092       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
2093     }
2094 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2095     VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2096     {
2097       return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2098     }
2099 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2100     VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2101     {
2102       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2103     }
2104 
2105 #ifdef VK_USE_PLATFORM_IOS_MVK
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2106     VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2107     {
2108       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2109     }
2110 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2111 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const2112     VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT
2113     {
2114       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
2115     }
2116 
2117 #ifdef VK_USE_PLATFORM_FUCHSIA
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2118     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2119     {
2120       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
2121     }
2122 #endif /*VK_USE_PLATFORM_FUCHSIA*/
2123 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const2124     VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT
2125     {
2126       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
2127     }
2128 
vkCreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout) const2129     VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
2130     {
2131       return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
2132     }
2133 
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const2134     VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT
2135     {
2136       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
2137     }
2138 
2139 #ifdef VK_USE_PLATFORM_MACOS_MVK
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2140     VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2141     {
2142       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2143     }
2144 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2145 
2146 #ifdef VK_USE_PLATFORM_METAL_EXT
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2147     VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2148     {
2149       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2150     }
2151 #endif /*VK_USE_PLATFORM_METAL_EXT*/
2152 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const2153     VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT
2154     {
2155       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
2156     }
2157 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const2158     VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
2159     {
2160       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
2161     }
2162 
vkCreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlotEXT * pPrivateDataSlot) const2163     VkResult vkCreatePrivateDataSlotEXT( VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
2164     {
2165       return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
2166     }
2167 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const2168     VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT
2169     {
2170       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
2171     }
2172 
2173 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateRayTracingPipelinesKHR(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2174     VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2175     {
2176       return ::vkCreateRayTracingPipelinesKHR( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2177     }
2178 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2179 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2180     VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2181     {
2182       return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2183     }
2184 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2185     VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2186     {
2187       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
2188     }
2189 
vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2190     VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2191     {
2192       return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
2193     }
2194 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2195     VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2196     {
2197       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
2198     }
2199 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const2200     VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT
2201     {
2202       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
2203     }
2204 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2205     VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2206     {
2207       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
2208     }
2209 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2210     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2211     {
2212       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
2213     }
2214 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const2215     VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT
2216     {
2217       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
2218     }
2219 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const2220     VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT
2221     {
2222       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
2223     }
2224 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const2225     VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT
2226     {
2227       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
2228     }
2229 
2230 #ifdef VK_USE_PLATFORM_GGP
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2231     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2232     {
2233       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
2234     }
2235 #endif /*VK_USE_PLATFORM_GGP*/
2236 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const2237     VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT
2238     {
2239       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
2240     }
2241 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const2242     VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT
2243     {
2244       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
2245     }
2246 
2247 #ifdef VK_USE_PLATFORM_VI_NN
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2248     VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2249     {
2250       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
2251     }
2252 #endif /*VK_USE_PLATFORM_VI_NN*/
2253 
2254 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2255     VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2256     {
2257       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2258     }
2259 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2260 
2261 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2262     VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2263     {
2264       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2265     }
2266 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2267 
2268 #ifdef VK_USE_PLATFORM_XCB_KHR
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2269     VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2270     {
2271       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2272     }
2273 #endif /*VK_USE_PLATFORM_XCB_KHR*/
2274 
2275 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2276     VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2277     {
2278       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2279     }
2280 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
2281 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const2282     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
2283     {
2284       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
2285     }
2286 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const2287     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
2288     {
2289       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
2290     }
2291 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const2292     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
2293     {
2294       return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
2295     }
2296 
2297 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation) const2298     VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2299     {
2300       return ::vkDeferredOperationJoinKHR( device, operation );
2301     }
2302 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2303 
2304 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const2305     void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2306     {
2307       return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
2308     }
2309 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2310 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const2311     void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2312     {
2313       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
2314     }
2315 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const2316     void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2317     {
2318       return ::vkDestroyBuffer( device, buffer, pAllocator );
2319     }
2320 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const2321     void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2322     {
2323       return ::vkDestroyBufferView( device, bufferView, pAllocator );
2324     }
2325 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const2326     void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2327     {
2328       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
2329     }
2330 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const2331     void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2332     {
2333       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
2334     }
2335 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const2336     void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2337     {
2338       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
2339     }
2340 
2341 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator) const2342     void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2343     {
2344       return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
2345     }
2346 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2347 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const2348     void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2349     {
2350       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
2351     }
2352 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const2353     void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2354     {
2355       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
2356     }
2357 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2358     void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2359     {
2360       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
2361     }
2362 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2363     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2364     {
2365       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
2366     }
2367 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const2368     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2369     {
2370       return ::vkDestroyDevice( device, pAllocator );
2371     }
2372 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const2373     void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2374     {
2375       return ::vkDestroyEvent( device, event, pAllocator );
2376     }
2377 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const2378     void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2379     {
2380       return ::vkDestroyFence( device, fence, pAllocator );
2381     }
2382 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const2383     void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2384     {
2385       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
2386     }
2387 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const2388     void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2389     {
2390       return ::vkDestroyImage( device, image, pAllocator );
2391     }
2392 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const2393     void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2394     {
2395       return ::vkDestroyImageView( device, imageView, pAllocator );
2396     }
2397 
vkDestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const2398     void vkDestroyIndirectCommandsLayoutNV( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2399     {
2400       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
2401     }
2402 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const2403     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2404     {
2405       return ::vkDestroyInstance( instance, pAllocator );
2406     }
2407 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const2408     void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2409     {
2410       return ::vkDestroyPipeline( device, pipeline, pAllocator );
2411     }
2412 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const2413     void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2414     {
2415       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
2416     }
2417 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const2418     void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2419     {
2420       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
2421     }
2422 
vkDestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlotEXT privateDataSlot,const VkAllocationCallbacks * pAllocator) const2423     void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2424     {
2425       return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
2426     }
2427 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const2428     void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2429     {
2430       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
2431     }
2432 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const2433     void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2434     {
2435       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
2436     }
2437 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const2438     void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2439     {
2440       return ::vkDestroySampler( device, sampler, pAllocator );
2441     }
2442 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2443     void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2444     {
2445       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
2446     }
2447 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2448     void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2449     {
2450       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
2451     }
2452 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const2453     void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2454     {
2455       return ::vkDestroySemaphore( device, semaphore, pAllocator );
2456     }
2457 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const2458     void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2459     {
2460       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
2461     }
2462 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2463     void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2464     {
2465       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2466     }
2467 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const2468     void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2469     {
2470       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
2471     }
2472 
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const2473     void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2474     {
2475       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
2476     }
2477 
vkDeviceWaitIdle(VkDevice device) const2478     VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
2479     {
2480       return ::vkDeviceWaitIdle( device );
2481     }
2482 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const2483     VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
2484     {
2485       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
2486     }
2487 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const2488     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2489     {
2490       return ::vkEndCommandBuffer( commandBuffer );
2491     }
2492 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2493     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2494     {
2495       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
2496     }
2497 
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2498     VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2499     {
2500       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
2501     }
2502 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2503     VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2504     {
2505       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
2506     }
2507 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2508     VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2509     {
2510       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
2511     }
2512 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const2513     VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT
2514     {
2515       return ::vkEnumerateInstanceVersion( pApiVersion );
2516     }
2517 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2518     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2519     {
2520       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2521     }
2522 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2523     VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2524     {
2525       return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2526     }
2527 
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions) const2528     VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
2529     {
2530       return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
2531     }
2532 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const2533     VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
2534     {
2535       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
2536     }
2537 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const2538     VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
2539     {
2540       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
2541     }
2542 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const2543     void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2544     {
2545       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
2546     }
2547 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const2548     VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
2549     {
2550       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
2551     }
2552 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const2553     void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2554     {
2555       return ::vkFreeMemory( device, memory, pAllocator );
2556     }
2557 
2558 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo) const2559     VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
2560     {
2561       return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
2562     }
2563 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2564 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData) const2565     VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2566     {
2567       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
2568     }
2569 
2570 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureMemoryRequirementsKHR(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoKHR * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2571     void vkGetAccelerationStructureMemoryRequirementsKHR( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2572     {
2573       return ::vkGetAccelerationStructureMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
2574     }
2575 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2576 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const2577     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2578     {
2579       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2580     }
2581 
2582 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const2583     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT
2584     {
2585       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
2586     }
2587 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2588 
vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2589     VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2590     {
2591       return ::vkGetBufferDeviceAddress( device, pInfo );
2592     }
2593 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2594     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2595     {
2596       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
2597     }
2598 
vkGetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2599     VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2600     {
2601       return ::vkGetBufferDeviceAddressKHR( device, pInfo );
2602     }
2603 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const2604     void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2605     {
2606       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
2607     }
2608 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2609     void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2610     {
2611       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2612     }
2613 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2614     void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2615     {
2616       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2617     }
2618 
vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2619     uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2620     {
2621       return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2622     }
2623 
vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2624     uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2625     {
2626       return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
2627     }
2628 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const2629     VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
2630     {
2631       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
2632     }
2633 
2634 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation) const2635     uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2636     {
2637       return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
2638     }
2639 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2640 
2641 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation) const2642     VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2643     {
2644       return ::vkGetDeferredOperationResultKHR( device, operation );
2645     }
2646 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2647 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2648     void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2649     {
2650       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2651     }
2652 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2653     void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2654     {
2655       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
2656     }
2657 
2658 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionKHR * version) const2659     VkResult vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionKHR* version ) const VULKAN_HPP_NOEXCEPT
2660     {
2661       return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, version );
2662     }
2663 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2664 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2665     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2666     {
2667       return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2668     }
2669 
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2670     void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2671     {
2672       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2673     }
2674 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const2675     VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2676     {
2677       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2678     }
2679 
2680 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const2681     VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2682     {
2683       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
2684     }
2685 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2686 
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const2687     VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2688     {
2689       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2690     }
2691 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const2692     void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
2693     {
2694       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
2695     }
2696 
vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2697     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2698     {
2699       return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2700     }
2701 
vkGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2702     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2703     {
2704       return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
2705     }
2706 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const2707     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT
2708     {
2709       return ::vkGetDeviceProcAddr( device, pName );
2710     }
2711 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const2712     void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2713     {
2714       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
2715     }
2716 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const2717     void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2718     {
2719       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2720     }
2721 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const2722     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2723     {
2724       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
2725     }
2726 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2727     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2728     {
2729       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2730     }
2731 
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const2732     VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2733     {
2734       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
2735     }
2736 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2737     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2738     {
2739       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2740     }
2741 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2742     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT
2743     {
2744       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2745     }
2746 
vkGetEventStatus(VkDevice device,VkEvent event) const2747     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
2748     {
2749       return ::vkGetEventStatus( device, event );
2750     }
2751 
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const2752     VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2753     {
2754       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
2755     }
2756 
vkGetFenceStatus(VkDevice device,VkFence fence) const2757     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
2758     {
2759       return ::vkGetFenceStatus( device, fence );
2760     }
2761 
2762 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2763     VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2764     {
2765       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2766     }
2767 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2768 
vkGetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2769     void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2770     {
2771       return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2772     }
2773 
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const2774     VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT
2775     {
2776       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
2777     }
2778 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const2779     void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2780     {
2781       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
2782     }
2783 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2784     void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2785     {
2786       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2787     }
2788 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2789     void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2790     {
2791       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2792     }
2793 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const2794     void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2795     {
2796       return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2797     }
2798 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2799     void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2800     {
2801       return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2802     }
2803 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2804     void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2805     {
2806       return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2807     }
2808 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const2809     void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT
2810     {
2811       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
2812     }
2813 
vkGetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties) const2814     VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) const VULKAN_HPP_NOEXCEPT
2815     {
2816       return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
2817     }
2818 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const2819     uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT
2820     {
2821       return ::vkGetImageViewHandleNVX( device, pInfo );
2822     }
2823 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const2824     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT
2825     {
2826       return ::vkGetInstanceProcAddr( instance, pName );
2827     }
2828 
2829 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const2830     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT
2831     {
2832       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
2833     }
2834 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2835 
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const2836     VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2837     {
2838       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
2839     }
2840 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const2841     VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
2842     {
2843       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
2844     }
2845 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const2846     VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
2847     {
2848       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
2849     }
2850 
2851 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2852     VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2853     {
2854       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2855     }
2856 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2857 
2858 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const2859     VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2860     {
2861       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
2862     }
2863 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2864 
2865 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const2866     VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
2867     {
2868       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
2869     }
2870 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2871 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const2872     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
2873     {
2874       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
2875     }
2876 
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const2877     VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT
2878     {
2879       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
2880     }
2881 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const2882     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT
2883     {
2884       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
2885     }
2886 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const2887     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT
2888     {
2889       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
2890     }
2891 
2892 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkGetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,IDirectFB * dfb) const2893     VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb ) const VULKAN_HPP_NOEXCEPT
2894     {
2895       return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
2896     }
2897 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2898 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const2899     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2900     {
2901       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2902     }
2903 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2904     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2905     {
2906       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2907     }
2908 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const2909     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2910     {
2911       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2912     }
2913 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2914     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2915     {
2916       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2917     }
2918 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2919     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2920     {
2921       return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2922     }
2923 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2924     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2925     {
2926       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2927     }
2928 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2929     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2930     {
2931       return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2932     }
2933 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2934     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2935     {
2936       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2937     }
2938 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const2939     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2940     {
2941       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
2942     }
2943 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2944     void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2945     {
2946       return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2947     }
2948 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2949     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2950     {
2951       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2952     }
2953 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const2954     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT
2955     {
2956       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
2957     }
2958 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2959     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2960     {
2961       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2962     }
2963 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2964     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2965     {
2966       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
2967     }
2968 
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const2969     void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2970     {
2971       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
2972     }
2973 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2974     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2975     {
2976       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2977     }
2978 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2979     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2980     {
2981       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
2982     }
2983 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const2984     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2985     {
2986       return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
2987     }
2988 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2989     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2990     {
2991       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2992     }
2993 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2994     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2995     {
2996       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2997     }
2998 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const2999     void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3000     {
3001       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
3002     }
3003 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3004     void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3005     {
3006       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
3007     }
3008 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3009     void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3010     {
3011       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
3012     }
3013 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const3014     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
3015     {
3016       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
3017     }
3018 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const3019     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT
3020     {
3021       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
3022     }
3023 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const3024     void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3025     {
3026       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
3027     }
3028 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3029     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3030     {
3031       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
3032     }
3033 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3034     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3035     {
3036       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
3037     }
3038 
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses) const3039     void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT
3040     {
3041       return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
3042     }
3043 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const3044     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3045     {
3046       return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3047     }
3048 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3049     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3050     {
3051       return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3052     }
3053 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3054     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3055     {
3056       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3057     }
3058 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const3059     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3060     {
3061       return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
3062     }
3063 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3064     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3065     {
3066       return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3067     }
3068 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3069     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3070     {
3071       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3072     }
3073 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const3074     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT
3075     {
3076       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
3077     }
3078 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const3079     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3080     {
3081       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
3082     }
3083 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const3084     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3085     {
3086       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
3087     }
3088 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const3089     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3090     {
3091       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
3092     }
3093 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const3094     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3095     {
3096       return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
3097     }
3098 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const3099     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3100     {
3101       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
3102     }
3103 
3104 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3105     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3106     {
3107       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
3108     }
3109 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3110 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3111     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3112     {
3113       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
3114     }
3115 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const3116     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT
3117     {
3118       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
3119     }
3120 
vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolPropertiesEXT * pToolProperties) const3121     VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT
3122     {
3123       return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
3124     }
3125 
3126 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const3127     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT
3128     {
3129       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
3130     }
3131 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3132 
3133 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const3134     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
3135     {
3136       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
3137     }
3138 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3139 
3140 #ifdef VK_USE_PLATFORM_XCB_KHR
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const3141     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT
3142     {
3143       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
3144     }
3145 #endif /*VK_USE_PLATFORM_XCB_KHR*/
3146 
3147 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const3148     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT
3149     {
3150       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
3151     }
3152 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
3153 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const3154     VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3155     {
3156       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
3157     }
3158 
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const3159     VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
3160     {
3161       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
3162     }
3163 
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const3164     VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
3165     {
3166       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
3167     }
3168 
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const3169     VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT
3170     {
3171       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
3172     }
3173 
vkGetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t * pData) const3174     void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) const VULKAN_HPP_NOEXCEPT
3175     {
3176       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
3177     }
3178 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const3179     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
3180     {
3181       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
3182     }
3183 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const3184     void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT
3185     {
3186       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
3187     }
3188 
3189 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const3190     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT
3191     {
3192       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3193     }
3194 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3195 
3196 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3197     VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3198     {
3199       return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3200     }
3201 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3202 
3203 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3204     VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3205     {
3206       return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3207     }
3208 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3209 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3210     VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3211     {
3212       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
3213     }
3214 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const3215     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
3216     {
3217       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
3218     }
3219 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const3220     void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT
3221     {
3222       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
3223     }
3224 
vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3225     VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3226     {
3227       return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
3228     }
3229 
vkGetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3230     VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3231     {
3232       return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
3233     }
3234 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const3235     VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
3236     {
3237       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
3238     }
3239 
3240 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3241     VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
3242     {
3243       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3244     }
3245 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3246 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const3247     VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT
3248     {
3249       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
3250     }
3251 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const3252     VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT
3253     {
3254       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
3255     }
3256 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const3257     VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
3258     {
3259       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
3260     }
3261 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const3262     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3263     {
3264       return ::vkGetSwapchainStatusKHR( device, swapchain );
3265     }
3266 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const3267     VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3268     {
3269       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
3270     }
3271 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const3272     VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
3273     {
3274       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
3275     }
3276 
3277 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const3278     VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3279     {
3280       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
3281     }
3282 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3283 
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const3284     VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
3285     {
3286       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
3287     }
3288 
3289 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const3290     VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3291     {
3292       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
3293     }
3294 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3295 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const3296     VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
3297     {
3298       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
3299     }
3300 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const3301     VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
3302     {
3303       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
3304     }
3305 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const3306     VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT
3307     {
3308       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
3309     }
3310 
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const3311     VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3312     {
3313       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
3314     }
3315 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const3316     VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3317     {
3318       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
3319     }
3320 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3321     void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3322     {
3323       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
3324     }
3325 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const3326     VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3327     {
3328       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
3329     }
3330 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const3331     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3332     {
3333       return ::vkQueueEndDebugUtilsLabelEXT( queue );
3334     }
3335 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3336     void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3337     {
3338       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
3339     }
3340 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const3341     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT
3342     {
3343       return ::vkQueuePresentKHR( queue, pPresentInfo );
3344     }
3345 
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const3346     VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3347     {
3348       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
3349     }
3350 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const3351     VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3352     {
3353       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
3354     }
3355 
vkQueueWaitIdle(VkQueue queue) const3356     VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3357     {
3358       return ::vkQueueWaitIdle( queue );
3359     }
3360 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3361     VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3362     {
3363       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
3364     }
3365 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3366     VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3367     {
3368       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
3369     }
3370 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const3371     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3372     {
3373       return ::vkReleaseDisplayEXT( physicalDevice, display );
3374     }
3375 
3376 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const3377     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3378     {
3379       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
3380     }
3381 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3382 
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const3383     VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3384     {
3385       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
3386     }
3387 
vkReleaseProfilingLockKHR(VkDevice device) const3388     void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3389     {
3390       return ::vkReleaseProfilingLockKHR( device );
3391     }
3392 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const3393     VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3394     {
3395       return ::vkResetCommandBuffer( commandBuffer, flags );
3396     }
3397 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const3398     VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3399     {
3400       return ::vkResetCommandPool( device, commandPool, flags );
3401     }
3402 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const3403     VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3404     {
3405       return ::vkResetDescriptorPool( device, descriptorPool, flags );
3406     }
3407 
vkResetEvent(VkDevice device,VkEvent event) const3408     VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3409     {
3410       return ::vkResetEvent( device, event );
3411     }
3412 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const3413     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT
3414     {
3415       return ::vkResetFences( device, fenceCount, pFences );
3416     }
3417 
vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3418     void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3419     {
3420       return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
3421     }
3422 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3423     void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3424     {
3425       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
3426     }
3427 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const3428     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
3429     {
3430       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
3431     }
3432 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const3433     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
3434     {
3435       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
3436     }
3437 
vkSetEvent(VkDevice device,VkEvent event) const3438     VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3439     {
3440       return ::vkSetEvent( device, event );
3441     }
3442 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const3443     void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT
3444     {
3445       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
3446     }
3447 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const3448     void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
3449     {
3450       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
3451     }
3452 
vkSetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t data) const3453     VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) const VULKAN_HPP_NOEXCEPT
3454     {
3455       return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
3456     }
3457 
vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3458     VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3459     {
3460       return ::vkSignalSemaphore( device, pSignalInfo );
3461     }
3462 
vkSignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3463     VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3464     {
3465       return ::vkSignalSemaphoreKHR( device, pSignalInfo );
3466     }
3467 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const3468     void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT
3469     {
3470       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
3471     }
3472 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3473     void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3474     {
3475       return ::vkTrimCommandPool( device, commandPool, flags );
3476     }
3477 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3478     void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3479     {
3480       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
3481     }
3482 
vkUninitializePerformanceApiINTEL(VkDevice device) const3483     void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3484     {
3485       return ::vkUninitializePerformanceApiINTEL( device );
3486     }
3487 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const3488     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
3489     {
3490       return ::vkUnmapMemory( device, memory );
3491     }
3492 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3493     void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3494     {
3495       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
3496     }
3497 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3498     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3499     {
3500       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
3501     }
3502 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const3503     void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
3504     {
3505       return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
3506     }
3507 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const3508     VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3509     {
3510       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
3511     }
3512 
vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3513     VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3514     {
3515       return ::vkWaitSemaphores( device, pWaitInfo, timeout );
3516     }
3517 
vkWaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3518     VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3519     {
3520       return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
3521     }
3522 
3523 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkWriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const3524     VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) const VULKAN_HPP_NOEXCEPT
3525     {
3526       return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
3527     }
3528 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3529   };
3530 #endif
3531 
3532   class DispatchLoaderDynamic;
3533 #if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC)
3534 # if defined(VK_NO_PROTOTYPES)
3535 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
3536 # else
3537 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
3538 # endif
3539 #endif
3540 
3541 #if defined(_WIN32) && defined(VULKAN_HPP_STORAGE_SHARED)
3542 #  ifdef VULKAN_HPP_STORAGE_SHARED_EXPORT
3543 #    define VULKAN_HPP_STORAGE_API __declspec( dllexport )
3544 #  else
3545 #    define VULKAN_HPP_STORAGE_API __declspec( dllimport )
3546 #  endif
3547 #else
3548 #  define VULKAN_HPP_STORAGE_API
3549 #endif
3550 
3551 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER)
3552 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3553 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
3554 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; }
3555   extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
3556 # else
3557 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic()
3558 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
3559 # endif
3560 #endif
3561 
3562 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE)
3563 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3564   #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
3565 # else
3566 #  define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
3567 # endif
3568 #endif
3569 
3570 #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
3571 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
3572 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
3573 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
3574 #else
3575 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {}
3576 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
3577 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER
3578 #endif
3579 
3580   struct AllocationCallbacks;
3581 
3582   template <typename OwnerType, typename Dispatch>
3583   class ObjectDestroy
3584   {
3585     public:
3586     ObjectDestroy() = default;
3587 
ObjectDestroy(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3588     ObjectDestroy( OwnerType owner,
3589                    Optional<const AllocationCallbacks> allocationCallbacks
3590                                     VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3591                    Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3592       : m_owner( owner )
3593       , m_allocationCallbacks( allocationCallbacks )
3594       , m_dispatch( &dispatch )
3595     {}
3596 
getOwner() const3597       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getAllocator() const3598       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3599 
3600     protected:
3601       template <typename T>
destroy(T t)3602       void destroy(T t) VULKAN_HPP_NOEXCEPT
3603       {
3604         VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3605         m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
3606       }
3607 
3608     private:
3609     OwnerType                           m_owner               = {};
3610     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3611     Dispatch const *                    m_dispatch            = nullptr;
3612   };
3613 
3614   class NoParent;
3615 
3616   template <typename Dispatch>
3617   class ObjectDestroy<NoParent,Dispatch>
3618   {
3619     public:
3620     ObjectDestroy() = default;
3621 
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3622     ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
3623                    Dispatch const &                    dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3624       : m_allocationCallbacks( allocationCallbacks )
3625       , m_dispatch( &dispatch )
3626     {}
3627 
getAllocator() const3628       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3629 
3630     protected:
3631       template <typename T>
destroy(T t)3632       void destroy(T t) VULKAN_HPP_NOEXCEPT
3633       {
3634         VULKAN_HPP_ASSERT( m_dispatch );
3635         t.destroy( m_allocationCallbacks, *m_dispatch );
3636       }
3637 
3638     private:
3639     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3640     Dispatch const *                    m_dispatch            = nullptr;
3641   };
3642 
3643   template <typename OwnerType, typename Dispatch>
3644   class ObjectFree
3645   {
3646   public:
3647     ObjectFree() = default;
3648 
ObjectFree(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3649     ObjectFree( OwnerType                                               owner,
3650                 Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3651                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3652       : m_owner( owner )
3653       , m_allocationCallbacks( allocationCallbacks )
3654       , m_dispatch( &dispatch )
3655     {}
3656 
getOwner() const3657     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
3658     {
3659       return m_owner;
3660     }
3661 
getAllocator() const3662     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
3663     {
3664       return m_allocationCallbacks;
3665     }
3666 
3667   protected:
3668     template <typename T>
destroy(T t)3669     void destroy( T t ) VULKAN_HPP_NOEXCEPT
3670     {
3671       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3672       m_owner.free( t, m_allocationCallbacks, *m_dispatch );
3673     }
3674 
3675   private:
3676     OwnerType                           m_owner               = {};
3677     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3678     Dispatch const *                    m_dispatch            = nullptr;
3679   };
3680 
3681   template <typename OwnerType, typename PoolType, typename Dispatch>
3682   class PoolFree
3683   {
3684     public:
3685       PoolFree() = default;
3686 
PoolFree(OwnerType owner,PoolType pool,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3687       PoolFree( OwnerType        owner,
3688                 PoolType         pool,
3689                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3690         : m_owner( owner )
3691         , m_pool( pool )
3692         , m_dispatch( &dispatch )
3693       {}
3694 
getOwner() const3695       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getPool() const3696       PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; }
3697 
3698     protected:
3699       template <typename T>
destroy(T t)3700       void destroy(T t) VULKAN_HPP_NOEXCEPT
3701       {
3702         m_owner.free( m_pool, t, *m_dispatch );
3703       }
3704 
3705     private:
3706       OwnerType        m_owner    = OwnerType();
3707       PoolType         m_pool     = PoolType();
3708       Dispatch const * m_dispatch = nullptr;
3709   };
3710 
3711   using Bool32 = uint32_t;
3712   using DeviceAddress = uint64_t;
3713   using DeviceSize = uint64_t;
3714   using SampleMask = uint32_t;
3715 
3716   template <typename EnumType, EnumType value>
3717   struct CppType
3718   {};
3719 
3720   template <typename Type>
3721   struct isVulkanHandleType
3722   {
3723     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false;
3724   };
3725 
3726 #ifdef VK_ENABLE_BETA_EXTENSIONS
3727   enum class AccelerationStructureBuildTypeKHR
3728   {
3729     eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
3730     eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
3731     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
3732   };
3733 
to_string(AccelerationStructureBuildTypeKHR value)3734   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
3735   {
3736     switch ( value )
3737     {
3738       case AccelerationStructureBuildTypeKHR::eHost : return "Host";
3739       case AccelerationStructureBuildTypeKHR::eDevice : return "Device";
3740       case AccelerationStructureBuildTypeKHR::eHostOrDevice : return "HostOrDevice";
3741       default: return "invalid";
3742     }
3743   }
3744 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3745 
3746   enum class AccelerationStructureMemoryRequirementsTypeKHR
3747   {
3748     eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
3749     eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
3750     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR
3751   };
3752   using AccelerationStructureMemoryRequirementsTypeNV = AccelerationStructureMemoryRequirementsTypeKHR;
3753 
to_string(AccelerationStructureMemoryRequirementsTypeKHR value)3754   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeKHR value )
3755   {
3756     switch ( value )
3757     {
3758       case AccelerationStructureMemoryRequirementsTypeKHR::eObject : return "Object";
3759       case AccelerationStructureMemoryRequirementsTypeKHR::eBuildScratch : return "BuildScratch";
3760       case AccelerationStructureMemoryRequirementsTypeKHR::eUpdateScratch : return "UpdateScratch";
3761       default: return "invalid";
3762     }
3763   }
3764 
3765   enum class AccelerationStructureTypeKHR
3766   {
3767     eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
3768     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR
3769   };
3770   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
3771 
to_string(AccelerationStructureTypeKHR value)3772   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
3773   {
3774     switch ( value )
3775     {
3776       case AccelerationStructureTypeKHR::eTopLevel : return "TopLevel";
3777       case AccelerationStructureTypeKHR::eBottomLevel : return "BottomLevel";
3778       default: return "invalid";
3779     }
3780   }
3781 
3782   enum class AccessFlagBits : VkAccessFlags
3783   {
3784     eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
3785     eIndexRead = VK_ACCESS_INDEX_READ_BIT,
3786     eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
3787     eUniformRead = VK_ACCESS_UNIFORM_READ_BIT,
3788     eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
3789     eShaderRead = VK_ACCESS_SHADER_READ_BIT,
3790     eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT,
3791     eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
3792     eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
3793     eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
3794     eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
3795     eTransferRead = VK_ACCESS_TRANSFER_READ_BIT,
3796     eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
3797     eHostRead = VK_ACCESS_HOST_READ_BIT,
3798     eHostWrite = VK_ACCESS_HOST_WRITE_BIT,
3799     eMemoryRead = VK_ACCESS_MEMORY_READ_BIT,
3800     eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT,
3801     eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
3802     eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
3803     eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
3804     eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
3805     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
3806     eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3807     eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3808     eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
3809     eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
3810     eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
3811     eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
3812     eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
3813     eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV
3814   };
3815 
to_string(AccessFlagBits value)3816   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
3817   {
3818     switch ( value )
3819     {
3820       case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead";
3821       case AccessFlagBits::eIndexRead : return "IndexRead";
3822       case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead";
3823       case AccessFlagBits::eUniformRead : return "UniformRead";
3824       case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead";
3825       case AccessFlagBits::eShaderRead : return "ShaderRead";
3826       case AccessFlagBits::eShaderWrite : return "ShaderWrite";
3827       case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead";
3828       case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite";
3829       case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead";
3830       case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite";
3831       case AccessFlagBits::eTransferRead : return "TransferRead";
3832       case AccessFlagBits::eTransferWrite : return "TransferWrite";
3833       case AccessFlagBits::eHostRead : return "HostRead";
3834       case AccessFlagBits::eHostWrite : return "HostWrite";
3835       case AccessFlagBits::eMemoryRead : return "MemoryRead";
3836       case AccessFlagBits::eMemoryWrite : return "MemoryWrite";
3837       case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT";
3838       case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT";
3839       case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT";
3840       case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT";
3841       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT";
3842       case AccessFlagBits::eAccelerationStructureReadKHR : return "AccelerationStructureReadKHR";
3843       case AccessFlagBits::eAccelerationStructureWriteKHR : return "AccelerationStructureWriteKHR";
3844       case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV";
3845       case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT";
3846       case AccessFlagBits::eCommandPreprocessReadNV : return "CommandPreprocessReadNV";
3847       case AccessFlagBits::eCommandPreprocessWriteNV : return "CommandPreprocessWriteNV";
3848       default: return "invalid";
3849     }
3850   }
3851 
3852   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
3853   {};
3854 
to_string(AcquireProfilingLockFlagBitsKHR)3855   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
3856   {
3857     return "(void)";
3858   }
3859 
3860   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
3861   {
3862     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
3863   };
3864 
to_string(AttachmentDescriptionFlagBits value)3865   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
3866   {
3867     switch ( value )
3868     {
3869       case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias";
3870       default: return "invalid";
3871     }
3872   }
3873 
3874   enum class AttachmentLoadOp
3875   {
3876     eLoad = VK_ATTACHMENT_LOAD_OP_LOAD,
3877     eClear = VK_ATTACHMENT_LOAD_OP_CLEAR,
3878     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
3879   };
3880 
to_string(AttachmentLoadOp value)3881   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
3882   {
3883     switch ( value )
3884     {
3885       case AttachmentLoadOp::eLoad : return "Load";
3886       case AttachmentLoadOp::eClear : return "Clear";
3887       case AttachmentLoadOp::eDontCare : return "DontCare";
3888       default: return "invalid";
3889     }
3890   }
3891 
3892   enum class AttachmentStoreOp
3893   {
3894     eStore = VK_ATTACHMENT_STORE_OP_STORE,
3895     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
3896     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
3897   };
3898 
to_string(AttachmentStoreOp value)3899   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
3900   {
3901     switch ( value )
3902     {
3903       case AttachmentStoreOp::eStore : return "Store";
3904       case AttachmentStoreOp::eDontCare : return "DontCare";
3905       case AttachmentStoreOp::eNoneQCOM : return "NoneQCOM";
3906       default: return "invalid";
3907     }
3908   }
3909 
3910   enum class BlendFactor
3911   {
3912     eZero = VK_BLEND_FACTOR_ZERO,
3913     eOne = VK_BLEND_FACTOR_ONE,
3914     eSrcColor = VK_BLEND_FACTOR_SRC_COLOR,
3915     eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
3916     eDstColor = VK_BLEND_FACTOR_DST_COLOR,
3917     eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
3918     eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA,
3919     eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
3920     eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA,
3921     eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
3922     eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR,
3923     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
3924     eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA,
3925     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
3926     eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
3927     eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR,
3928     eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
3929     eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA,
3930     eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
3931   };
3932 
to_string(BlendFactor value)3933   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
3934   {
3935     switch ( value )
3936     {
3937       case BlendFactor::eZero : return "Zero";
3938       case BlendFactor::eOne : return "One";
3939       case BlendFactor::eSrcColor : return "SrcColor";
3940       case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor";
3941       case BlendFactor::eDstColor : return "DstColor";
3942       case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor";
3943       case BlendFactor::eSrcAlpha : return "SrcAlpha";
3944       case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha";
3945       case BlendFactor::eDstAlpha : return "DstAlpha";
3946       case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha";
3947       case BlendFactor::eConstantColor : return "ConstantColor";
3948       case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor";
3949       case BlendFactor::eConstantAlpha : return "ConstantAlpha";
3950       case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha";
3951       case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate";
3952       case BlendFactor::eSrc1Color : return "Src1Color";
3953       case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color";
3954       case BlendFactor::eSrc1Alpha : return "Src1Alpha";
3955       case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha";
3956       default: return "invalid";
3957     }
3958   }
3959 
3960   enum class BlendOp
3961   {
3962     eAdd = VK_BLEND_OP_ADD,
3963     eSubtract = VK_BLEND_OP_SUBTRACT,
3964     eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT,
3965     eMin = VK_BLEND_OP_MIN,
3966     eMax = VK_BLEND_OP_MAX,
3967     eZeroEXT = VK_BLEND_OP_ZERO_EXT,
3968     eSrcEXT = VK_BLEND_OP_SRC_EXT,
3969     eDstEXT = VK_BLEND_OP_DST_EXT,
3970     eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT,
3971     eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT,
3972     eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT,
3973     eDstInEXT = VK_BLEND_OP_DST_IN_EXT,
3974     eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT,
3975     eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT,
3976     eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT,
3977     eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT,
3978     eXorEXT = VK_BLEND_OP_XOR_EXT,
3979     eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT,
3980     eScreenEXT = VK_BLEND_OP_SCREEN_EXT,
3981     eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT,
3982     eDarkenEXT = VK_BLEND_OP_DARKEN_EXT,
3983     eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT,
3984     eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT,
3985     eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT,
3986     eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT,
3987     eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT,
3988     eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT,
3989     eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT,
3990     eInvertEXT = VK_BLEND_OP_INVERT_EXT,
3991     eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT,
3992     eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT,
3993     eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT,
3994     eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT,
3995     eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT,
3996     ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT,
3997     eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT,
3998     eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT,
3999     eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT,
4000     eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT,
4001     eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
4002     ePlusEXT = VK_BLEND_OP_PLUS_EXT,
4003     ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT,
4004     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
4005     ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT,
4006     eMinusEXT = VK_BLEND_OP_MINUS_EXT,
4007     eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT,
4008     eContrastEXT = VK_BLEND_OP_CONTRAST_EXT,
4009     eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT,
4010     eRedEXT = VK_BLEND_OP_RED_EXT,
4011     eGreenEXT = VK_BLEND_OP_GREEN_EXT,
4012     eBlueEXT = VK_BLEND_OP_BLUE_EXT
4013   };
4014 
to_string(BlendOp value)4015   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
4016   {
4017     switch ( value )
4018     {
4019       case BlendOp::eAdd : return "Add";
4020       case BlendOp::eSubtract : return "Subtract";
4021       case BlendOp::eReverseSubtract : return "ReverseSubtract";
4022       case BlendOp::eMin : return "Min";
4023       case BlendOp::eMax : return "Max";
4024       case BlendOp::eZeroEXT : return "ZeroEXT";
4025       case BlendOp::eSrcEXT : return "SrcEXT";
4026       case BlendOp::eDstEXT : return "DstEXT";
4027       case BlendOp::eSrcOverEXT : return "SrcOverEXT";
4028       case BlendOp::eDstOverEXT : return "DstOverEXT";
4029       case BlendOp::eSrcInEXT : return "SrcInEXT";
4030       case BlendOp::eDstInEXT : return "DstInEXT";
4031       case BlendOp::eSrcOutEXT : return "SrcOutEXT";
4032       case BlendOp::eDstOutEXT : return "DstOutEXT";
4033       case BlendOp::eSrcAtopEXT : return "SrcAtopEXT";
4034       case BlendOp::eDstAtopEXT : return "DstAtopEXT";
4035       case BlendOp::eXorEXT : return "XorEXT";
4036       case BlendOp::eMultiplyEXT : return "MultiplyEXT";
4037       case BlendOp::eScreenEXT : return "ScreenEXT";
4038       case BlendOp::eOverlayEXT : return "OverlayEXT";
4039       case BlendOp::eDarkenEXT : return "DarkenEXT";
4040       case BlendOp::eLightenEXT : return "LightenEXT";
4041       case BlendOp::eColordodgeEXT : return "ColordodgeEXT";
4042       case BlendOp::eColorburnEXT : return "ColorburnEXT";
4043       case BlendOp::eHardlightEXT : return "HardlightEXT";
4044       case BlendOp::eSoftlightEXT : return "SoftlightEXT";
4045       case BlendOp::eDifferenceEXT : return "DifferenceEXT";
4046       case BlendOp::eExclusionEXT : return "ExclusionEXT";
4047       case BlendOp::eInvertEXT : return "InvertEXT";
4048       case BlendOp::eInvertRgbEXT : return "InvertRgbEXT";
4049       case BlendOp::eLineardodgeEXT : return "LineardodgeEXT";
4050       case BlendOp::eLinearburnEXT : return "LinearburnEXT";
4051       case BlendOp::eVividlightEXT : return "VividlightEXT";
4052       case BlendOp::eLinearlightEXT : return "LinearlightEXT";
4053       case BlendOp::ePinlightEXT : return "PinlightEXT";
4054       case BlendOp::eHardmixEXT : return "HardmixEXT";
4055       case BlendOp::eHslHueEXT : return "HslHueEXT";
4056       case BlendOp::eHslSaturationEXT : return "HslSaturationEXT";
4057       case BlendOp::eHslColorEXT : return "HslColorEXT";
4058       case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT";
4059       case BlendOp::ePlusEXT : return "PlusEXT";
4060       case BlendOp::ePlusClampedEXT : return "PlusClampedEXT";
4061       case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT";
4062       case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT";
4063       case BlendOp::eMinusEXT : return "MinusEXT";
4064       case BlendOp::eMinusClampedEXT : return "MinusClampedEXT";
4065       case BlendOp::eContrastEXT : return "ContrastEXT";
4066       case BlendOp::eInvertOvgEXT : return "InvertOvgEXT";
4067       case BlendOp::eRedEXT : return "RedEXT";
4068       case BlendOp::eGreenEXT : return "GreenEXT";
4069       case BlendOp::eBlueEXT : return "BlueEXT";
4070       default: return "invalid";
4071     }
4072   }
4073 
4074   enum class BlendOverlapEXT
4075   {
4076     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
4077     eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT,
4078     eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT
4079   };
4080 
to_string(BlendOverlapEXT value)4081   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
4082   {
4083     switch ( value )
4084     {
4085       case BlendOverlapEXT::eUncorrelated : return "Uncorrelated";
4086       case BlendOverlapEXT::eDisjoint : return "Disjoint";
4087       case BlendOverlapEXT::eConjoint : return "Conjoint";
4088       default: return "invalid";
4089     }
4090   }
4091 
4092   enum class BorderColor
4093   {
4094     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
4095     eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
4096     eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
4097     eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
4098     eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
4099     eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
4100     eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
4101     eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT
4102   };
4103 
to_string(BorderColor value)4104   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
4105   {
4106     switch ( value )
4107     {
4108       case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack";
4109       case BorderColor::eIntTransparentBlack : return "IntTransparentBlack";
4110       case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack";
4111       case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack";
4112       case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite";
4113       case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite";
4114       case BorderColor::eFloatCustomEXT : return "FloatCustomEXT";
4115       case BorderColor::eIntCustomEXT : return "IntCustomEXT";
4116       default: return "invalid";
4117     }
4118   }
4119 
4120   enum class BufferCreateFlagBits : VkBufferCreateFlags
4121   {
4122     eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
4123     eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
4124     eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
4125     eProtected = VK_BUFFER_CREATE_PROTECTED_BIT,
4126     eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4127     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
4128     eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
4129   };
4130 
to_string(BufferCreateFlagBits value)4131   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
4132   {
4133     switch ( value )
4134     {
4135       case BufferCreateFlagBits::eSparseBinding : return "SparseBinding";
4136       case BufferCreateFlagBits::eSparseResidency : return "SparseResidency";
4137       case BufferCreateFlagBits::eSparseAliased : return "SparseAliased";
4138       case BufferCreateFlagBits::eProtected : return "Protected";
4139       case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
4140       default: return "invalid";
4141     }
4142   }
4143 
4144   enum class BufferUsageFlagBits : VkBufferUsageFlags
4145   {
4146     eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
4147     eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
4148     eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
4149     eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
4150     eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
4151     eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
4152     eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
4153     eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
4154     eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
4155     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
4156     eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
4157     eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
4158     eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
4159     eRayTracingKHR = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
4160     eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
4161     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
4162     eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
4163   };
4164 
to_string(BufferUsageFlagBits value)4165   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
4166   {
4167     switch ( value )
4168     {
4169       case BufferUsageFlagBits::eTransferSrc : return "TransferSrc";
4170       case BufferUsageFlagBits::eTransferDst : return "TransferDst";
4171       case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
4172       case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
4173       case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer";
4174       case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer";
4175       case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer";
4176       case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer";
4177       case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer";
4178       case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress";
4179       case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT";
4180       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT";
4181       case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
4182       case BufferUsageFlagBits::eRayTracingKHR : return "RayTracingKHR";
4183       default: return "invalid";
4184     }
4185   }
4186 
4187   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
4188   {
4189     eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
4190     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
4191     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
4192     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
4193     eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
4194   };
4195   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
4196 
to_string(BuildAccelerationStructureFlagBitsKHR value)4197   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
4198   {
4199     switch ( value )
4200     {
4201       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate : return "AllowUpdate";
4202       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction : return "AllowCompaction";
4203       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace : return "PreferFastTrace";
4204       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild : return "PreferFastBuild";
4205       case BuildAccelerationStructureFlagBitsKHR::eLowMemory : return "LowMemory";
4206       default: return "invalid";
4207     }
4208   }
4209 
4210   enum class ChromaLocation
4211   {
4212     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
4213     eMidpoint = VK_CHROMA_LOCATION_MIDPOINT
4214   };
4215   using ChromaLocationKHR = ChromaLocation;
4216 
to_string(ChromaLocation value)4217   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
4218   {
4219     switch ( value )
4220     {
4221       case ChromaLocation::eCositedEven : return "CositedEven";
4222       case ChromaLocation::eMidpoint : return "Midpoint";
4223       default: return "invalid";
4224     }
4225   }
4226 
4227   enum class CoarseSampleOrderTypeNV
4228   {
4229     eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
4230     eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
4231     ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
4232     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
4233   };
4234 
to_string(CoarseSampleOrderTypeNV value)4235   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
4236   {
4237     switch ( value )
4238     {
4239       case CoarseSampleOrderTypeNV::eDefault : return "Default";
4240       case CoarseSampleOrderTypeNV::eCustom : return "Custom";
4241       case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor";
4242       case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor";
4243       default: return "invalid";
4244     }
4245   }
4246 
4247   enum class ColorComponentFlagBits : VkColorComponentFlags
4248   {
4249     eR = VK_COLOR_COMPONENT_R_BIT,
4250     eG = VK_COLOR_COMPONENT_G_BIT,
4251     eB = VK_COLOR_COMPONENT_B_BIT,
4252     eA = VK_COLOR_COMPONENT_A_BIT
4253   };
4254 
to_string(ColorComponentFlagBits value)4255   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
4256   {
4257     switch ( value )
4258     {
4259       case ColorComponentFlagBits::eR : return "R";
4260       case ColorComponentFlagBits::eG : return "G";
4261       case ColorComponentFlagBits::eB : return "B";
4262       case ColorComponentFlagBits::eA : return "A";
4263       default: return "invalid";
4264     }
4265   }
4266 
4267   enum class ColorSpaceKHR
4268   {
4269     eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4270     eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
4271     eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
4272     eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
4273     eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
4274     eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT,
4275     eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
4276     eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
4277     eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT,
4278     eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT,
4279     eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT,
4280     eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
4281     eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
4282     ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT,
4283     eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
4284     eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
4285     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
4286     eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
4287   };
4288 
to_string(ColorSpaceKHR value)4289   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
4290   {
4291     switch ( value )
4292     {
4293       case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear";
4294       case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT";
4295       case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT";
4296       case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT";
4297       case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT";
4298       case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT";
4299       case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT";
4300       case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT";
4301       case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT";
4302       case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT";
4303       case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT";
4304       case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT";
4305       case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT";
4306       case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT";
4307       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT";
4308       case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD";
4309       default: return "invalid";
4310     }
4311   }
4312 
4313   enum class CommandBufferLevel
4314   {
4315     ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
4316     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
4317   };
4318 
to_string(CommandBufferLevel value)4319   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
4320   {
4321     switch ( value )
4322     {
4323       case CommandBufferLevel::ePrimary : return "Primary";
4324       case CommandBufferLevel::eSecondary : return "Secondary";
4325       default: return "invalid";
4326     }
4327   }
4328 
4329   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
4330   {
4331     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
4332   };
4333 
to_string(CommandBufferResetFlagBits value)4334   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
4335   {
4336     switch ( value )
4337     {
4338       case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources";
4339       default: return "invalid";
4340     }
4341   }
4342 
4343   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
4344   {
4345     eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
4346     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
4347     eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
4348   };
4349 
to_string(CommandBufferUsageFlagBits value)4350   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
4351   {
4352     switch ( value )
4353     {
4354       case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit";
4355       case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue";
4356       case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse";
4357       default: return "invalid";
4358     }
4359   }
4360 
4361   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
4362   {
4363     eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
4364     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
4365     eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
4366   };
4367 
to_string(CommandPoolCreateFlagBits value)4368   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
4369   {
4370     switch ( value )
4371     {
4372       case CommandPoolCreateFlagBits::eTransient : return "Transient";
4373       case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer";
4374       case CommandPoolCreateFlagBits::eProtected : return "Protected";
4375       default: return "invalid";
4376     }
4377   }
4378 
4379   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
4380   {
4381     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
4382   };
4383 
to_string(CommandPoolResetFlagBits value)4384   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
4385   {
4386     switch ( value )
4387     {
4388       case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources";
4389       default: return "invalid";
4390     }
4391   }
4392 
4393   enum class CompareOp
4394   {
4395     eNever = VK_COMPARE_OP_NEVER,
4396     eLess = VK_COMPARE_OP_LESS,
4397     eEqual = VK_COMPARE_OP_EQUAL,
4398     eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
4399     eGreater = VK_COMPARE_OP_GREATER,
4400     eNotEqual = VK_COMPARE_OP_NOT_EQUAL,
4401     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
4402     eAlways = VK_COMPARE_OP_ALWAYS
4403   };
4404 
to_string(CompareOp value)4405   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
4406   {
4407     switch ( value )
4408     {
4409       case CompareOp::eNever : return "Never";
4410       case CompareOp::eLess : return "Less";
4411       case CompareOp::eEqual : return "Equal";
4412       case CompareOp::eLessOrEqual : return "LessOrEqual";
4413       case CompareOp::eGreater : return "Greater";
4414       case CompareOp::eNotEqual : return "NotEqual";
4415       case CompareOp::eGreaterOrEqual : return "GreaterOrEqual";
4416       case CompareOp::eAlways : return "Always";
4417       default: return "invalid";
4418     }
4419   }
4420 
4421   enum class ComponentSwizzle
4422   {
4423     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
4424     eZero = VK_COMPONENT_SWIZZLE_ZERO,
4425     eOne = VK_COMPONENT_SWIZZLE_ONE,
4426     eR = VK_COMPONENT_SWIZZLE_R,
4427     eG = VK_COMPONENT_SWIZZLE_G,
4428     eB = VK_COMPONENT_SWIZZLE_B,
4429     eA = VK_COMPONENT_SWIZZLE_A
4430   };
4431 
to_string(ComponentSwizzle value)4432   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
4433   {
4434     switch ( value )
4435     {
4436       case ComponentSwizzle::eIdentity : return "Identity";
4437       case ComponentSwizzle::eZero : return "Zero";
4438       case ComponentSwizzle::eOne : return "One";
4439       case ComponentSwizzle::eR : return "R";
4440       case ComponentSwizzle::eG : return "G";
4441       case ComponentSwizzle::eB : return "B";
4442       case ComponentSwizzle::eA : return "A";
4443       default: return "invalid";
4444     }
4445   }
4446 
4447   enum class ComponentTypeNV
4448   {
4449     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
4450     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
4451     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
4452     eSint8 = VK_COMPONENT_TYPE_SINT8_NV,
4453     eSint16 = VK_COMPONENT_TYPE_SINT16_NV,
4454     eSint32 = VK_COMPONENT_TYPE_SINT32_NV,
4455     eSint64 = VK_COMPONENT_TYPE_SINT64_NV,
4456     eUint8 = VK_COMPONENT_TYPE_UINT8_NV,
4457     eUint16 = VK_COMPONENT_TYPE_UINT16_NV,
4458     eUint32 = VK_COMPONENT_TYPE_UINT32_NV,
4459     eUint64 = VK_COMPONENT_TYPE_UINT64_NV
4460   };
4461 
to_string(ComponentTypeNV value)4462   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
4463   {
4464     switch ( value )
4465     {
4466       case ComponentTypeNV::eFloat16 : return "Float16";
4467       case ComponentTypeNV::eFloat32 : return "Float32";
4468       case ComponentTypeNV::eFloat64 : return "Float64";
4469       case ComponentTypeNV::eSint8 : return "Sint8";
4470       case ComponentTypeNV::eSint16 : return "Sint16";
4471       case ComponentTypeNV::eSint32 : return "Sint32";
4472       case ComponentTypeNV::eSint64 : return "Sint64";
4473       case ComponentTypeNV::eUint8 : return "Uint8";
4474       case ComponentTypeNV::eUint16 : return "Uint16";
4475       case ComponentTypeNV::eUint32 : return "Uint32";
4476       case ComponentTypeNV::eUint64 : return "Uint64";
4477       default: return "invalid";
4478     }
4479   }
4480 
4481   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
4482   {
4483     eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
4484     ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
4485     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
4486     eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
4487   };
4488 
to_string(CompositeAlphaFlagBitsKHR value)4489   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
4490   {
4491     switch ( value )
4492     {
4493       case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque";
4494       case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied";
4495       case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied";
4496       case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit";
4497       default: return "invalid";
4498     }
4499   }
4500 
4501   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
4502   {
4503     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
4504   };
4505 
to_string(ConditionalRenderingFlagBitsEXT value)4506   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
4507   {
4508     switch ( value )
4509     {
4510       case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted";
4511       default: return "invalid";
4512     }
4513   }
4514 
4515   enum class ConservativeRasterizationModeEXT
4516   {
4517     eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
4518     eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
4519     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
4520   };
4521 
to_string(ConservativeRasterizationModeEXT value)4522   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
4523   {
4524     switch ( value )
4525     {
4526       case ConservativeRasterizationModeEXT::eDisabled : return "Disabled";
4527       case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate";
4528       case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate";
4529       default: return "invalid";
4530     }
4531   }
4532 
4533   enum class CopyAccelerationStructureModeKHR
4534   {
4535     eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
4536     eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
4537     eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
4538     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
4539   };
4540   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
4541 
to_string(CopyAccelerationStructureModeKHR value)4542   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
4543   {
4544     switch ( value )
4545     {
4546       case CopyAccelerationStructureModeKHR::eClone : return "Clone";
4547       case CopyAccelerationStructureModeKHR::eCompact : return "Compact";
4548       case CopyAccelerationStructureModeKHR::eSerialize : return "Serialize";
4549       case CopyAccelerationStructureModeKHR::eDeserialize : return "Deserialize";
4550       default: return "invalid";
4551     }
4552   }
4553 
4554   enum class CoverageModulationModeNV
4555   {
4556     eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV,
4557     eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV,
4558     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
4559     eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV
4560   };
4561 
to_string(CoverageModulationModeNV value)4562   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
4563   {
4564     switch ( value )
4565     {
4566       case CoverageModulationModeNV::eNone : return "None";
4567       case CoverageModulationModeNV::eRgb : return "Rgb";
4568       case CoverageModulationModeNV::eAlpha : return "Alpha";
4569       case CoverageModulationModeNV::eRgba : return "Rgba";
4570       default: return "invalid";
4571     }
4572   }
4573 
4574   enum class CoverageReductionModeNV
4575   {
4576     eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
4577     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
4578   };
4579 
to_string(CoverageReductionModeNV value)4580   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
4581   {
4582     switch ( value )
4583     {
4584       case CoverageReductionModeNV::eMerge : return "Merge";
4585       case CoverageReductionModeNV::eTruncate : return "Truncate";
4586       default: return "invalid";
4587     }
4588   }
4589 
4590   enum class CullModeFlagBits : VkCullModeFlags
4591   {
4592     eNone = VK_CULL_MODE_NONE,
4593     eFront = VK_CULL_MODE_FRONT_BIT,
4594     eBack = VK_CULL_MODE_BACK_BIT,
4595     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
4596   };
4597 
to_string(CullModeFlagBits value)4598   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
4599   {
4600     switch ( value )
4601     {
4602       case CullModeFlagBits::eNone : return "None";
4603       case CullModeFlagBits::eFront : return "Front";
4604       case CullModeFlagBits::eBack : return "Back";
4605       case CullModeFlagBits::eFrontAndBack : return "FrontAndBack";
4606       default: return "invalid";
4607     }
4608   }
4609 
4610   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
4611   {
4612     eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
4613     eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT,
4614     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
4615     eError = VK_DEBUG_REPORT_ERROR_BIT_EXT,
4616     eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT
4617   };
4618 
to_string(DebugReportFlagBitsEXT value)4619   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
4620   {
4621     switch ( value )
4622     {
4623       case DebugReportFlagBitsEXT::eInformation : return "Information";
4624       case DebugReportFlagBitsEXT::eWarning : return "Warning";
4625       case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning";
4626       case DebugReportFlagBitsEXT::eError : return "Error";
4627       case DebugReportFlagBitsEXT::eDebug : return "Debug";
4628       default: return "invalid";
4629     }
4630   }
4631 
4632   enum class DebugReportObjectTypeEXT
4633   {
4634     eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4635     eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
4636     ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
4637     eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
4638     eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
4639     eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
4640     eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
4641     eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
4642     eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
4643     eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
4644     eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
4645     eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
4646     eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
4647     eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
4648     eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
4649     eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
4650     ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
4651     ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
4652     eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
4653     ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
4654     eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
4655     eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
4656     eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
4657     eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
4658     eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
4659     eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
4660     eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
4661     eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
4662     eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
4663     eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
4664     eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
4665     eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
4666     eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
4667     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
4668     eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
4669     eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
4670     eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
4671     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
4672     eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
4673     eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
4674   };
4675 
to_string(DebugReportObjectTypeEXT value)4676   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
4677   {
4678     switch ( value )
4679     {
4680       case DebugReportObjectTypeEXT::eUnknown : return "Unknown";
4681       case DebugReportObjectTypeEXT::eInstance : return "Instance";
4682       case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice";
4683       case DebugReportObjectTypeEXT::eDevice : return "Device";
4684       case DebugReportObjectTypeEXT::eQueue : return "Queue";
4685       case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore";
4686       case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer";
4687       case DebugReportObjectTypeEXT::eFence : return "Fence";
4688       case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory";
4689       case DebugReportObjectTypeEXT::eBuffer : return "Buffer";
4690       case DebugReportObjectTypeEXT::eImage : return "Image";
4691       case DebugReportObjectTypeEXT::eEvent : return "Event";
4692       case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool";
4693       case DebugReportObjectTypeEXT::eBufferView : return "BufferView";
4694       case DebugReportObjectTypeEXT::eImageView : return "ImageView";
4695       case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule";
4696       case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache";
4697       case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout";
4698       case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass";
4699       case DebugReportObjectTypeEXT::ePipeline : return "Pipeline";
4700       case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout";
4701       case DebugReportObjectTypeEXT::eSampler : return "Sampler";
4702       case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool";
4703       case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet";
4704       case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer";
4705       case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool";
4706       case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR";
4707       case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR";
4708       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
4709       case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR";
4710       case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR";
4711       case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT";
4712       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
4713       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
4714       case DebugReportObjectTypeEXT::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4715       default: return "invalid";
4716     }
4717   }
4718 
4719   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
4720   {
4721     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
4722     eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
4723     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
4724     eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
4725   };
4726 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)4727   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
4728   {
4729     switch ( value )
4730     {
4731       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose";
4732       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info";
4733       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning";
4734       case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error";
4735       default: return "invalid";
4736     }
4737   }
4738 
4739   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
4740   {
4741     eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
4742     eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
4743     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
4744   };
4745 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)4746   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
4747   {
4748     switch ( value )
4749     {
4750       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General";
4751       case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation";
4752       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance";
4753       default: return "invalid";
4754     }
4755   }
4756 
4757   enum class DependencyFlagBits : VkDependencyFlags
4758   {
4759     eByRegion = VK_DEPENDENCY_BY_REGION_BIT,
4760     eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT,
4761     eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT,
4762     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
4763     eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
4764   };
4765 
to_string(DependencyFlagBits value)4766   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
4767   {
4768     switch ( value )
4769     {
4770       case DependencyFlagBits::eByRegion : return "ByRegion";
4771       case DependencyFlagBits::eDeviceGroup : return "DeviceGroup";
4772       case DependencyFlagBits::eViewLocal : return "ViewLocal";
4773       default: return "invalid";
4774     }
4775   }
4776 
4777   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
4778   {
4779     eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
4780     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
4781     ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
4782     eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
4783   };
4784   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
4785 
to_string(DescriptorBindingFlagBits value)4786   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
4787   {
4788     switch ( value )
4789     {
4790       case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4791       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending";
4792       case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound";
4793       case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount";
4794       default: return "invalid";
4795     }
4796   }
4797 
4798   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
4799   {
4800     eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
4801     eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
4802     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
4803   };
4804 
to_string(DescriptorPoolCreateFlagBits value)4805   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
4806   {
4807     switch ( value )
4808     {
4809       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet";
4810       case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4811       default: return "invalid";
4812     }
4813   }
4814 
4815   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
4816   {
4817     eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
4818     ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
4819     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
4820   };
4821 
to_string(DescriptorSetLayoutCreateFlagBits value)4822   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
4823   {
4824     switch ( value )
4825     {
4826       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool";
4827       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR";
4828       default: return "invalid";
4829     }
4830   }
4831 
4832   enum class DescriptorType
4833   {
4834     eSampler = VK_DESCRIPTOR_TYPE_SAMPLER,
4835     eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
4836     eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
4837     eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
4838     eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
4839     eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
4840     eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
4841     eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
4842     eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
4843     eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
4844     eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
4845     eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
4846     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
4847     eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
4848   };
4849 
to_string(DescriptorType value)4850   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
4851   {
4852     switch ( value )
4853     {
4854       case DescriptorType::eSampler : return "Sampler";
4855       case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler";
4856       case DescriptorType::eSampledImage : return "SampledImage";
4857       case DescriptorType::eStorageImage : return "StorageImage";
4858       case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer";
4859       case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer";
4860       case DescriptorType::eUniformBuffer : return "UniformBuffer";
4861       case DescriptorType::eStorageBuffer : return "StorageBuffer";
4862       case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic";
4863       case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic";
4864       case DescriptorType::eInputAttachment : return "InputAttachment";
4865       case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT";
4866       case DescriptorType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4867       default: return "invalid";
4868     }
4869   }
4870 
4871   enum class DescriptorUpdateTemplateType
4872   {
4873     eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4874     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
4875   };
4876   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4877 
to_string(DescriptorUpdateTemplateType value)4878   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
4879   {
4880     switch ( value )
4881     {
4882       case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet";
4883       case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR";
4884       default: return "invalid";
4885     }
4886   }
4887 
4888   enum class DeviceCreateFlagBits
4889   {};
4890 
to_string(DeviceCreateFlagBits)4891   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
4892   {
4893     return "(void)";
4894   }
4895 
4896   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
4897   {
4898     eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
4899     eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
4900     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
4901   };
4902 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)4903   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
4904   {
4905     switch ( value )
4906     {
4907       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo : return "EnableShaderDebugInfo";
4908       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking : return "EnableResourceTracking";
4909       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints : return "EnableAutomaticCheckpoints";
4910       default: return "invalid";
4911     }
4912   }
4913 
4914   enum class DeviceEventTypeEXT
4915   {
4916     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
4917   };
4918 
to_string(DeviceEventTypeEXT value)4919   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
4920   {
4921     switch ( value )
4922     {
4923       case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug";
4924       default: return "invalid";
4925     }
4926   }
4927 
4928   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
4929   {
4930     eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
4931     eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
4932     eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
4933     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
4934   };
4935 
to_string(DeviceGroupPresentModeFlagBitsKHR value)4936   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
4937   {
4938     switch ( value )
4939     {
4940       case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local";
4941       case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote";
4942       case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum";
4943       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice";
4944       default: return "invalid";
4945     }
4946   }
4947 
4948   enum class DeviceMemoryReportEventTypeEXT
4949   {
4950     eAllocate = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
4951     eFree = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
4952     eImport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
4953     eUnimport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
4954     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
4955   };
4956 
to_string(DeviceMemoryReportEventTypeEXT value)4957   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
4958   {
4959     switch ( value )
4960     {
4961       case DeviceMemoryReportEventTypeEXT::eAllocate : return "Allocate";
4962       case DeviceMemoryReportEventTypeEXT::eFree : return "Free";
4963       case DeviceMemoryReportEventTypeEXT::eImport : return "Import";
4964       case DeviceMemoryReportEventTypeEXT::eUnimport : return "Unimport";
4965       case DeviceMemoryReportEventTypeEXT::eAllocationFailed : return "AllocationFailed";
4966       default: return "invalid";
4967     }
4968   }
4969 
4970   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
4971   {
4972     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
4973   };
4974 
to_string(DeviceQueueCreateFlagBits value)4975   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
4976   {
4977     switch ( value )
4978     {
4979       case DeviceQueueCreateFlagBits::eProtected : return "Protected";
4980       default: return "invalid";
4981     }
4982   }
4983 
4984   enum class DiscardRectangleModeEXT
4985   {
4986     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
4987     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
4988   };
4989 
to_string(DiscardRectangleModeEXT value)4990   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
4991   {
4992     switch ( value )
4993     {
4994       case DiscardRectangleModeEXT::eInclusive : return "Inclusive";
4995       case DiscardRectangleModeEXT::eExclusive : return "Exclusive";
4996       default: return "invalid";
4997     }
4998   }
4999 
5000   enum class DisplayEventTypeEXT
5001   {
5002     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
5003   };
5004 
to_string(DisplayEventTypeEXT value)5005   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
5006   {
5007     switch ( value )
5008     {
5009       case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut";
5010       default: return "invalid";
5011     }
5012   }
5013 
5014   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
5015   {
5016     eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
5017     eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
5018     ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
5019     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
5020   };
5021 
to_string(DisplayPlaneAlphaFlagBitsKHR value)5022   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
5023   {
5024     switch ( value )
5025     {
5026       case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque";
5027       case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global";
5028       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel";
5029       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied";
5030       default: return "invalid";
5031     }
5032   }
5033 
5034   enum class DisplayPowerStateEXT
5035   {
5036     eOff = VK_DISPLAY_POWER_STATE_OFF_EXT,
5037     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
5038     eOn = VK_DISPLAY_POWER_STATE_ON_EXT
5039   };
5040 
to_string(DisplayPowerStateEXT value)5041   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
5042   {
5043     switch ( value )
5044     {
5045       case DisplayPowerStateEXT::eOff : return "Off";
5046       case DisplayPowerStateEXT::eSuspend : return "Suspend";
5047       case DisplayPowerStateEXT::eOn : return "On";
5048       default: return "invalid";
5049     }
5050   }
5051 
5052   enum class DriverId
5053   {
5054     eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY,
5055     eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5056     eMesaRadv = VK_DRIVER_ID_MESA_RADV,
5057     eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5058     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5059     eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5060     eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5061     eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5062     eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY,
5063     eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5064     eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY,
5065     eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5066     eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE,
5067     eMoltenvk = VK_DRIVER_ID_MOLTENVK,
5068     eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR
5069   };
5070   using DriverIdKHR = DriverId;
5071 
to_string(DriverId value)5072   VULKAN_HPP_INLINE std::string to_string( DriverId value )
5073   {
5074     switch ( value )
5075     {
5076       case DriverId::eAmdProprietary : return "AmdProprietary";
5077       case DriverId::eAmdOpenSource : return "AmdOpenSource";
5078       case DriverId::eMesaRadv : return "MesaRadv";
5079       case DriverId::eNvidiaProprietary : return "NvidiaProprietary";
5080       case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows";
5081       case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA";
5082       case DriverId::eImaginationProprietary : return "ImaginationProprietary";
5083       case DriverId::eQualcommProprietary : return "QualcommProprietary";
5084       case DriverId::eArmProprietary : return "ArmProprietary";
5085       case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader";
5086       case DriverId::eGgpProprietary : return "GgpProprietary";
5087       case DriverId::eBroadcomProprietary : return "BroadcomProprietary";
5088       case DriverId::eMesaLlvmpipe : return "MesaLlvmpipe";
5089       case DriverId::eMoltenvk : return "Moltenvk";
5090       default: return "invalid";
5091     }
5092   }
5093 
5094   enum class DynamicState
5095   {
5096     eViewport = VK_DYNAMIC_STATE_VIEWPORT,
5097     eScissor = VK_DYNAMIC_STATE_SCISSOR,
5098     eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH,
5099     eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS,
5100     eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
5101     eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
5102     eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
5103     eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
5104     eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
5105     eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
5106     eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
5107     eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
5108     eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
5109     eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
5110     eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
5111     eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
5112     eCullModeEXT = VK_DYNAMIC_STATE_CULL_MODE_EXT,
5113     eFrontFaceEXT = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
5114     ePrimitiveTopologyEXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
5115     eViewportWithCountEXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
5116     eScissorWithCountEXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
5117     eVertexInputBindingStrideEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
5118     eDepthTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
5119     eDepthWriteEnableEXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
5120     eDepthCompareOpEXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
5121     eDepthBoundsTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
5122     eStencilTestEnableEXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
5123     eStencilOpEXT = VK_DYNAMIC_STATE_STENCIL_OP_EXT
5124   };
5125 
to_string(DynamicState value)5126   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
5127   {
5128     switch ( value )
5129     {
5130       case DynamicState::eViewport : return "Viewport";
5131       case DynamicState::eScissor : return "Scissor";
5132       case DynamicState::eLineWidth : return "LineWidth";
5133       case DynamicState::eDepthBias : return "DepthBias";
5134       case DynamicState::eBlendConstants : return "BlendConstants";
5135       case DynamicState::eDepthBounds : return "DepthBounds";
5136       case DynamicState::eStencilCompareMask : return "StencilCompareMask";
5137       case DynamicState::eStencilWriteMask : return "StencilWriteMask";
5138       case DynamicState::eStencilReference : return "StencilReference";
5139       case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV";
5140       case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT";
5141       case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT";
5142       case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV";
5143       case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV";
5144       case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV";
5145       case DynamicState::eLineStippleEXT : return "LineStippleEXT";
5146       case DynamicState::eCullModeEXT : return "CullModeEXT";
5147       case DynamicState::eFrontFaceEXT : return "FrontFaceEXT";
5148       case DynamicState::ePrimitiveTopologyEXT : return "PrimitiveTopologyEXT";
5149       case DynamicState::eViewportWithCountEXT : return "ViewportWithCountEXT";
5150       case DynamicState::eScissorWithCountEXT : return "ScissorWithCountEXT";
5151       case DynamicState::eVertexInputBindingStrideEXT : return "VertexInputBindingStrideEXT";
5152       case DynamicState::eDepthTestEnableEXT : return "DepthTestEnableEXT";
5153       case DynamicState::eDepthWriteEnableEXT : return "DepthWriteEnableEXT";
5154       case DynamicState::eDepthCompareOpEXT : return "DepthCompareOpEXT";
5155       case DynamicState::eDepthBoundsTestEnableEXT : return "DepthBoundsTestEnableEXT";
5156       case DynamicState::eStencilTestEnableEXT : return "StencilTestEnableEXT";
5157       case DynamicState::eStencilOpEXT : return "StencilOpEXT";
5158       default: return "invalid";
5159     }
5160   }
5161 
5162   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
5163   {
5164     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5165     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
5166   };
5167   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
5168 
to_string(ExternalFenceFeatureFlagBits value)5169   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
5170   {
5171     switch ( value )
5172     {
5173       case ExternalFenceFeatureFlagBits::eExportable : return "Exportable";
5174       case ExternalFenceFeatureFlagBits::eImportable : return "Importable";
5175       default: return "invalid";
5176     }
5177   }
5178 
5179   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
5180   {
5181     eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5182     eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5183     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5184     eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
5185   };
5186   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
5187 
to_string(ExternalFenceHandleTypeFlagBits value)5188   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
5189   {
5190     switch ( value )
5191     {
5192       case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5193       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5194       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5195       case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd";
5196       default: return "invalid";
5197     }
5198   }
5199 
5200   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
5201   {
5202     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5203     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5204     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
5205   };
5206   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
5207 
to_string(ExternalMemoryFeatureFlagBits value)5208   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
5209   {
5210     switch ( value )
5211     {
5212       case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly";
5213       case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable";
5214       case ExternalMemoryFeatureFlagBits::eImportable : return "Importable";
5215       default: return "invalid";
5216     }
5217   }
5218 
5219   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
5220   {
5221     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
5222     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
5223     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
5224   };
5225 
to_string(ExternalMemoryFeatureFlagBitsNV value)5226   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
5227   {
5228     switch ( value )
5229     {
5230       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly";
5231       case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable";
5232       case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable";
5233       default: return "invalid";
5234     }
5235   }
5236 
5237   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
5238   {
5239     eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5240     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5241     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5242     eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5243     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5244     eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5245     eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5246     eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
5247     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
5248     eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
5249     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
5250   };
5251   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
5252 
to_string(ExternalMemoryHandleTypeFlagBits value)5253   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
5254   {
5255     switch ( value )
5256     {
5257       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5258       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5259       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5260       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture";
5261       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt";
5262       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap";
5263       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource";
5264       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT";
5265       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID";
5266       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT";
5267       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT";
5268       default: return "invalid";
5269     }
5270   }
5271 
5272   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
5273   {
5274     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
5275     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
5276     eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
5277     eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
5278   };
5279 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)5280   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
5281   {
5282     switch ( value )
5283     {
5284       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32";
5285       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5286       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image";
5287       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt";
5288       default: return "invalid";
5289     }
5290   }
5291 
5292   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
5293   {
5294     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5295     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
5296   };
5297   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
5298 
to_string(ExternalSemaphoreFeatureFlagBits value)5299   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
5300   {
5301     switch ( value )
5302     {
5303       case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable";
5304       case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable";
5305       default: return "invalid";
5306     }
5307   }
5308 
5309   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
5310   {
5311     eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5312     eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5313     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5314     eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5315     eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5316     eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
5317   };
5318   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
5319 
to_string(ExternalSemaphoreHandleTypeFlagBits value)5320   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
5321   {
5322     switch ( value )
5323     {
5324       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5325       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5326       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5327       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence";
5328       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd";
5329       default: return "invalid";
5330     }
5331   }
5332 
5333   enum class FenceCreateFlagBits : VkFenceCreateFlags
5334   {
5335     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
5336   };
5337 
to_string(FenceCreateFlagBits value)5338   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
5339   {
5340     switch ( value )
5341     {
5342       case FenceCreateFlagBits::eSignaled : return "Signaled";
5343       default: return "invalid";
5344     }
5345   }
5346 
5347   enum class FenceImportFlagBits : VkFenceImportFlags
5348   {
5349     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
5350   };
5351   using FenceImportFlagBitsKHR = FenceImportFlagBits;
5352 
to_string(FenceImportFlagBits value)5353   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
5354   {
5355     switch ( value )
5356     {
5357       case FenceImportFlagBits::eTemporary : return "Temporary";
5358       default: return "invalid";
5359     }
5360   }
5361 
5362   enum class Filter
5363   {
5364     eNearest = VK_FILTER_NEAREST,
5365     eLinear = VK_FILTER_LINEAR,
5366     eCubicIMG = VK_FILTER_CUBIC_IMG,
5367     eCubicEXT = VK_FILTER_CUBIC_EXT
5368   };
5369 
to_string(Filter value)5370   VULKAN_HPP_INLINE std::string to_string( Filter value )
5371   {
5372     switch ( value )
5373     {
5374       case Filter::eNearest : return "Nearest";
5375       case Filter::eLinear : return "Linear";
5376       case Filter::eCubicIMG : return "CubicIMG";
5377       default: return "invalid";
5378     }
5379   }
5380 
5381   enum class Format
5382   {
5383     eUndefined = VK_FORMAT_UNDEFINED,
5384     eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8,
5385     eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
5386     eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
5387     eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16,
5388     eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16,
5389     eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
5390     eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
5391     eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
5392     eR8Unorm = VK_FORMAT_R8_UNORM,
5393     eR8Snorm = VK_FORMAT_R8_SNORM,
5394     eR8Uscaled = VK_FORMAT_R8_USCALED,
5395     eR8Sscaled = VK_FORMAT_R8_SSCALED,
5396     eR8Uint = VK_FORMAT_R8_UINT,
5397     eR8Sint = VK_FORMAT_R8_SINT,
5398     eR8Srgb = VK_FORMAT_R8_SRGB,
5399     eR8G8Unorm = VK_FORMAT_R8G8_UNORM,
5400     eR8G8Snorm = VK_FORMAT_R8G8_SNORM,
5401     eR8G8Uscaled = VK_FORMAT_R8G8_USCALED,
5402     eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED,
5403     eR8G8Uint = VK_FORMAT_R8G8_UINT,
5404     eR8G8Sint = VK_FORMAT_R8G8_SINT,
5405     eR8G8Srgb = VK_FORMAT_R8G8_SRGB,
5406     eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM,
5407     eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM,
5408     eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED,
5409     eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED,
5410     eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT,
5411     eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT,
5412     eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB,
5413     eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM,
5414     eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM,
5415     eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED,
5416     eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED,
5417     eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT,
5418     eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT,
5419     eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB,
5420     eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM,
5421     eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM,
5422     eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED,
5423     eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED,
5424     eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT,
5425     eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT,
5426     eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB,
5427     eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM,
5428     eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM,
5429     eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED,
5430     eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED,
5431     eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT,
5432     eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT,
5433     eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB,
5434     eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
5435     eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
5436     eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
5437     eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
5438     eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32,
5439     eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32,
5440     eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
5441     eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
5442     eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
5443     eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
5444     eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
5445     eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32,
5446     eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32,
5447     eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
5448     eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
5449     eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
5450     eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
5451     eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32,
5452     eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32,
5453     eR16Unorm = VK_FORMAT_R16_UNORM,
5454     eR16Snorm = VK_FORMAT_R16_SNORM,
5455     eR16Uscaled = VK_FORMAT_R16_USCALED,
5456     eR16Sscaled = VK_FORMAT_R16_SSCALED,
5457     eR16Uint = VK_FORMAT_R16_UINT,
5458     eR16Sint = VK_FORMAT_R16_SINT,
5459     eR16Sfloat = VK_FORMAT_R16_SFLOAT,
5460     eR16G16Unorm = VK_FORMAT_R16G16_UNORM,
5461     eR16G16Snorm = VK_FORMAT_R16G16_SNORM,
5462     eR16G16Uscaled = VK_FORMAT_R16G16_USCALED,
5463     eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED,
5464     eR16G16Uint = VK_FORMAT_R16G16_UINT,
5465     eR16G16Sint = VK_FORMAT_R16G16_SINT,
5466     eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT,
5467     eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM,
5468     eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM,
5469     eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED,
5470     eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED,
5471     eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT,
5472     eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT,
5473     eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT,
5474     eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM,
5475     eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM,
5476     eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED,
5477     eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED,
5478     eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT,
5479     eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT,
5480     eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT,
5481     eR32Uint = VK_FORMAT_R32_UINT,
5482     eR32Sint = VK_FORMAT_R32_SINT,
5483     eR32Sfloat = VK_FORMAT_R32_SFLOAT,
5484     eR32G32Uint = VK_FORMAT_R32G32_UINT,
5485     eR32G32Sint = VK_FORMAT_R32G32_SINT,
5486     eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT,
5487     eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT,
5488     eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT,
5489     eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT,
5490     eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT,
5491     eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT,
5492     eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT,
5493     eR64Uint = VK_FORMAT_R64_UINT,
5494     eR64Sint = VK_FORMAT_R64_SINT,
5495     eR64Sfloat = VK_FORMAT_R64_SFLOAT,
5496     eR64G64Uint = VK_FORMAT_R64G64_UINT,
5497     eR64G64Sint = VK_FORMAT_R64G64_SINT,
5498     eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT,
5499     eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT,
5500     eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT,
5501     eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT,
5502     eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT,
5503     eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT,
5504     eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT,
5505     eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
5506     eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
5507     eD16Unorm = VK_FORMAT_D16_UNORM,
5508     eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32,
5509     eD32Sfloat = VK_FORMAT_D32_SFLOAT,
5510     eS8Uint = VK_FORMAT_S8_UINT,
5511     eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT,
5512     eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT,
5513     eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT,
5514     eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
5515     eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
5516     eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
5517     eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
5518     eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK,
5519     eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK,
5520     eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK,
5521     eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK,
5522     eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK,
5523     eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK,
5524     eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK,
5525     eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK,
5526     eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK,
5527     eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK,
5528     eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK,
5529     eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK,
5530     eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
5531     eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
5532     eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
5533     eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
5534     eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
5535     eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
5536     eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK,
5537     eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK,
5538     eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
5539     eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
5540     eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
5541     eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
5542     eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
5543     eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
5544     eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
5545     eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
5546     eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
5547     eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
5548     eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
5549     eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
5550     eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
5551     eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
5552     eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
5553     eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
5554     eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
5555     eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
5556     eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
5557     eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
5558     eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
5559     eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
5560     eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
5561     eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
5562     eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
5563     eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
5564     eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
5565     eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
5566     eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
5567     eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
5568     eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM,
5569     eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM,
5570     eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
5571     eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
5572     eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
5573     eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
5574     eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
5575     eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16,
5576     eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
5577     eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
5578     eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
5579     eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
5580     eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
5581     eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
5582     eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
5583     eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
5584     eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
5585     eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16,
5586     eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
5587     eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
5588     eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
5589     eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
5590     eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
5591     eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
5592     eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
5593     eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
5594     eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
5595     eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM,
5596     eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM,
5597     eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
5598     eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
5599     eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
5600     eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
5601     eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
5602     ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
5603     ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
5604     ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
5605     ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
5606     ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
5607     ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
5608     ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
5609     ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
5610     eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
5611     eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
5612     eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
5613     eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
5614     eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
5615     eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
5616     eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
5617     eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
5618     eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
5619     eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
5620     eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
5621     eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
5622     eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
5623     eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
5624     eA4R4G4B4UnormPack16EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
5625     eA4B4G4R4UnormPack16EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
5626     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
5627     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
5628     eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
5629     eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
5630     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
5631     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
5632     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
5633     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
5634     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
5635     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
5636     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
5637     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
5638     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
5639     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
5640     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
5641     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
5642     eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
5643     eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
5644     eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
5645     eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
5646     eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
5647     eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
5648     eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
5649     eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
5650     eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
5651     eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
5652     eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
5653     eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
5654     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
5655     eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
5656     eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
5657     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
5658     eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
5659     eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR
5660   };
5661 
to_string(Format value)5662   VULKAN_HPP_INLINE std::string to_string( Format value )
5663   {
5664     switch ( value )
5665     {
5666       case Format::eUndefined : return "Undefined";
5667       case Format::eR4G4UnormPack8 : return "R4G4UnormPack8";
5668       case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16";
5669       case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16";
5670       case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16";
5671       case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16";
5672       case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16";
5673       case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16";
5674       case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16";
5675       case Format::eR8Unorm : return "R8Unorm";
5676       case Format::eR8Snorm : return "R8Snorm";
5677       case Format::eR8Uscaled : return "R8Uscaled";
5678       case Format::eR8Sscaled : return "R8Sscaled";
5679       case Format::eR8Uint : return "R8Uint";
5680       case Format::eR8Sint : return "R8Sint";
5681       case Format::eR8Srgb : return "R8Srgb";
5682       case Format::eR8G8Unorm : return "R8G8Unorm";
5683       case Format::eR8G8Snorm : return "R8G8Snorm";
5684       case Format::eR8G8Uscaled : return "R8G8Uscaled";
5685       case Format::eR8G8Sscaled : return "R8G8Sscaled";
5686       case Format::eR8G8Uint : return "R8G8Uint";
5687       case Format::eR8G8Sint : return "R8G8Sint";
5688       case Format::eR8G8Srgb : return "R8G8Srgb";
5689       case Format::eR8G8B8Unorm : return "R8G8B8Unorm";
5690       case Format::eR8G8B8Snorm : return "R8G8B8Snorm";
5691       case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled";
5692       case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled";
5693       case Format::eR8G8B8Uint : return "R8G8B8Uint";
5694       case Format::eR8G8B8Sint : return "R8G8B8Sint";
5695       case Format::eR8G8B8Srgb : return "R8G8B8Srgb";
5696       case Format::eB8G8R8Unorm : return "B8G8R8Unorm";
5697       case Format::eB8G8R8Snorm : return "B8G8R8Snorm";
5698       case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled";
5699       case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled";
5700       case Format::eB8G8R8Uint : return "B8G8R8Uint";
5701       case Format::eB8G8R8Sint : return "B8G8R8Sint";
5702       case Format::eB8G8R8Srgb : return "B8G8R8Srgb";
5703       case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm";
5704       case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm";
5705       case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled";
5706       case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled";
5707       case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint";
5708       case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint";
5709       case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb";
5710       case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm";
5711       case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm";
5712       case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled";
5713       case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled";
5714       case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint";
5715       case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint";
5716       case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb";
5717       case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32";
5718       case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32";
5719       case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32";
5720       case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32";
5721       case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32";
5722       case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32";
5723       case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32";
5724       case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32";
5725       case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32";
5726       case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32";
5727       case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32";
5728       case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32";
5729       case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32";
5730       case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32";
5731       case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32";
5732       case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32";
5733       case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32";
5734       case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32";
5735       case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32";
5736       case Format::eR16Unorm : return "R16Unorm";
5737       case Format::eR16Snorm : return "R16Snorm";
5738       case Format::eR16Uscaled : return "R16Uscaled";
5739       case Format::eR16Sscaled : return "R16Sscaled";
5740       case Format::eR16Uint : return "R16Uint";
5741       case Format::eR16Sint : return "R16Sint";
5742       case Format::eR16Sfloat : return "R16Sfloat";
5743       case Format::eR16G16Unorm : return "R16G16Unorm";
5744       case Format::eR16G16Snorm : return "R16G16Snorm";
5745       case Format::eR16G16Uscaled : return "R16G16Uscaled";
5746       case Format::eR16G16Sscaled : return "R16G16Sscaled";
5747       case Format::eR16G16Uint : return "R16G16Uint";
5748       case Format::eR16G16Sint : return "R16G16Sint";
5749       case Format::eR16G16Sfloat : return "R16G16Sfloat";
5750       case Format::eR16G16B16Unorm : return "R16G16B16Unorm";
5751       case Format::eR16G16B16Snorm : return "R16G16B16Snorm";
5752       case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled";
5753       case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled";
5754       case Format::eR16G16B16Uint : return "R16G16B16Uint";
5755       case Format::eR16G16B16Sint : return "R16G16B16Sint";
5756       case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat";
5757       case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm";
5758       case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm";
5759       case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled";
5760       case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled";
5761       case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint";
5762       case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint";
5763       case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat";
5764       case Format::eR32Uint : return "R32Uint";
5765       case Format::eR32Sint : return "R32Sint";
5766       case Format::eR32Sfloat : return "R32Sfloat";
5767       case Format::eR32G32Uint : return "R32G32Uint";
5768       case Format::eR32G32Sint : return "R32G32Sint";
5769       case Format::eR32G32Sfloat : return "R32G32Sfloat";
5770       case Format::eR32G32B32Uint : return "R32G32B32Uint";
5771       case Format::eR32G32B32Sint : return "R32G32B32Sint";
5772       case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat";
5773       case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint";
5774       case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint";
5775       case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat";
5776       case Format::eR64Uint : return "R64Uint";
5777       case Format::eR64Sint : return "R64Sint";
5778       case Format::eR64Sfloat : return "R64Sfloat";
5779       case Format::eR64G64Uint : return "R64G64Uint";
5780       case Format::eR64G64Sint : return "R64G64Sint";
5781       case Format::eR64G64Sfloat : return "R64G64Sfloat";
5782       case Format::eR64G64B64Uint : return "R64G64B64Uint";
5783       case Format::eR64G64B64Sint : return "R64G64B64Sint";
5784       case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat";
5785       case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint";
5786       case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint";
5787       case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat";
5788       case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32";
5789       case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32";
5790       case Format::eD16Unorm : return "D16Unorm";
5791       case Format::eX8D24UnormPack32 : return "X8D24UnormPack32";
5792       case Format::eD32Sfloat : return "D32Sfloat";
5793       case Format::eS8Uint : return "S8Uint";
5794       case Format::eD16UnormS8Uint : return "D16UnormS8Uint";
5795       case Format::eD24UnormS8Uint : return "D24UnormS8Uint";
5796       case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint";
5797       case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock";
5798       case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock";
5799       case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock";
5800       case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock";
5801       case Format::eBc2UnormBlock : return "Bc2UnormBlock";
5802       case Format::eBc2SrgbBlock : return "Bc2SrgbBlock";
5803       case Format::eBc3UnormBlock : return "Bc3UnormBlock";
5804       case Format::eBc3SrgbBlock : return "Bc3SrgbBlock";
5805       case Format::eBc4UnormBlock : return "Bc4UnormBlock";
5806       case Format::eBc4SnormBlock : return "Bc4SnormBlock";
5807       case Format::eBc5UnormBlock : return "Bc5UnormBlock";
5808       case Format::eBc5SnormBlock : return "Bc5SnormBlock";
5809       case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock";
5810       case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock";
5811       case Format::eBc7UnormBlock : return "Bc7UnormBlock";
5812       case Format::eBc7SrgbBlock : return "Bc7SrgbBlock";
5813       case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock";
5814       case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock";
5815       case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock";
5816       case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock";
5817       case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock";
5818       case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock";
5819       case Format::eEacR11UnormBlock : return "EacR11UnormBlock";
5820       case Format::eEacR11SnormBlock : return "EacR11SnormBlock";
5821       case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock";
5822       case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock";
5823       case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock";
5824       case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock";
5825       case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock";
5826       case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock";
5827       case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock";
5828       case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock";
5829       case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock";
5830       case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock";
5831       case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock";
5832       case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock";
5833       case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock";
5834       case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock";
5835       case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock";
5836       case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock";
5837       case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock";
5838       case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock";
5839       case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock";
5840       case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock";
5841       case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock";
5842       case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock";
5843       case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock";
5844       case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock";
5845       case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock";
5846       case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock";
5847       case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock";
5848       case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock";
5849       case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock";
5850       case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock";
5851       case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm";
5852       case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm";
5853       case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm";
5854       case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm";
5855       case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm";
5856       case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm";
5857       case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm";
5858       case Format::eR10X6UnormPack16 : return "R10X6UnormPack16";
5859       case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16";
5860       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16";
5861       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
5862       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
5863       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16";
5864       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16";
5865       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16";
5866       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16";
5867       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16";
5868       case Format::eR12X4UnormPack16 : return "R12X4UnormPack16";
5869       case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16";
5870       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16";
5871       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
5872       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
5873       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16";
5874       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16";
5875       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16";
5876       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16";
5877       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16";
5878       case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm";
5879       case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm";
5880       case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm";
5881       case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm";
5882       case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm";
5883       case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm";
5884       case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm";
5885       case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG";
5886       case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG";
5887       case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG";
5888       case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG";
5889       case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG";
5890       case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG";
5891       case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG";
5892       case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG";
5893       case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT";
5894       case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT";
5895       case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT";
5896       case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT";
5897       case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT";
5898       case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT";
5899       case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT";
5900       case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT";
5901       case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT";
5902       case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT";
5903       case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT";
5904       case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT";
5905       case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT";
5906       case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT";
5907       case Format::eA4R4G4B4UnormPack16EXT : return "A4R4G4B4UnormPack16EXT";
5908       case Format::eA4B4G4R4UnormPack16EXT : return "A4B4G4R4UnormPack16EXT";
5909       default: return "invalid";
5910     }
5911   }
5912 
5913   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
5914   {
5915     eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
5916     eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
5917     eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
5918     eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
5919     eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
5920     eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
5921     eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
5922     eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
5923     eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
5924     eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
5925     eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
5926     eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT,
5927     eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
5928     eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
5929     eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
5930     eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
5931     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
5932     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
5933     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
5934     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
5935     eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT,
5936     eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
5937     eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
5938     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
5939     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
5940     eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
5941     eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
5942     eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
5943     eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
5944     eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
5945     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
5946     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
5947     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
5948     eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
5949     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
5950     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
5951     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
5952   };
5953 
to_string(FormatFeatureFlagBits value)5954   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
5955   {
5956     switch ( value )
5957     {
5958       case FormatFeatureFlagBits::eSampledImage : return "SampledImage";
5959       case FormatFeatureFlagBits::eStorageImage : return "StorageImage";
5960       case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic";
5961       case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
5962       case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
5963       case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic";
5964       case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer";
5965       case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment";
5966       case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend";
5967       case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
5968       case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc";
5969       case FormatFeatureFlagBits::eBlitDst : return "BlitDst";
5970       case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear";
5971       case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc";
5972       case FormatFeatureFlagBits::eTransferDst : return "TransferDst";
5973       case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples";
5974       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter";
5975       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter";
5976       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit";
5977       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
5978       case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
5979       case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
5980       case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax";
5981       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
5982       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR : return "AccelerationStructureVertexBufferKHR";
5983       case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
5984       default: return "invalid";
5985     }
5986   }
5987 
5988   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
5989   {
5990     eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
5991     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
5992   };
5993 
to_string(FramebufferCreateFlagBits value)5994   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
5995   {
5996     switch ( value )
5997     {
5998       case FramebufferCreateFlagBits::eImageless : return "Imageless";
5999       default: return "invalid";
6000     }
6001   }
6002 
6003   enum class FrontFace
6004   {
6005     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
6006     eClockwise = VK_FRONT_FACE_CLOCKWISE
6007   };
6008 
to_string(FrontFace value)6009   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
6010   {
6011     switch ( value )
6012     {
6013       case FrontFace::eCounterClockwise : return "CounterClockwise";
6014       case FrontFace::eClockwise : return "Clockwise";
6015       default: return "invalid";
6016     }
6017   }
6018 
6019 #ifdef VK_USE_PLATFORM_WIN32_KHR
6020   enum class FullScreenExclusiveEXT
6021   {
6022     eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
6023     eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
6024     eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
6025     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
6026   };
6027 
to_string(FullScreenExclusiveEXT value)6028   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
6029   {
6030     switch ( value )
6031     {
6032       case FullScreenExclusiveEXT::eDefault : return "Default";
6033       case FullScreenExclusiveEXT::eAllowed : return "Allowed";
6034       case FullScreenExclusiveEXT::eDisallowed : return "Disallowed";
6035       case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled";
6036       default: return "invalid";
6037     }
6038   }
6039 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
6040 
6041   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
6042   {
6043     eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR,
6044     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
6045   };
6046   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
6047 
to_string(GeometryFlagBitsKHR value)6048   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
6049   {
6050     switch ( value )
6051     {
6052       case GeometryFlagBitsKHR::eOpaque : return "Opaque";
6053       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation";
6054       default: return "invalid";
6055     }
6056   }
6057 
6058   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
6059   {
6060     eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
6061     eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
6062     eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
6063     eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
6064     eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV
6065   };
6066   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6067 
to_string(GeometryInstanceFlagBitsKHR value)6068   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
6069   {
6070     switch ( value )
6071     {
6072       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable : return "TriangleFacingCullDisable";
6073       case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise";
6074       case GeometryInstanceFlagBitsKHR::eForceOpaque : return "ForceOpaque";
6075       case GeometryInstanceFlagBitsKHR::eForceNoOpaque : return "ForceNoOpaque";
6076       default: return "invalid";
6077     }
6078   }
6079 
6080   enum class GeometryTypeKHR
6081   {
6082     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
6083     eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR,
6084     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
6085   };
6086   using GeometryTypeNV = GeometryTypeKHR;
6087 
to_string(GeometryTypeKHR value)6088   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
6089   {
6090     switch ( value )
6091     {
6092       case GeometryTypeKHR::eTriangles : return "Triangles";
6093       case GeometryTypeKHR::eAabbs : return "Aabbs";
6094       case GeometryTypeKHR::eInstances : return "Instances";
6095       default: return "invalid";
6096     }
6097   }
6098 
6099   enum class ImageAspectFlagBits : VkImageAspectFlags
6100   {
6101     eColor = VK_IMAGE_ASPECT_COLOR_BIT,
6102     eDepth = VK_IMAGE_ASPECT_DEPTH_BIT,
6103     eStencil = VK_IMAGE_ASPECT_STENCIL_BIT,
6104     eMetadata = VK_IMAGE_ASPECT_METADATA_BIT,
6105     ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT,
6106     ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT,
6107     ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT,
6108     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
6109     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
6110     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
6111     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
6112     ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
6113     ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
6114     ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
6115   };
6116 
to_string(ImageAspectFlagBits value)6117   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
6118   {
6119     switch ( value )
6120     {
6121       case ImageAspectFlagBits::eColor : return "Color";
6122       case ImageAspectFlagBits::eDepth : return "Depth";
6123       case ImageAspectFlagBits::eStencil : return "Stencil";
6124       case ImageAspectFlagBits::eMetadata : return "Metadata";
6125       case ImageAspectFlagBits::ePlane0 : return "Plane0";
6126       case ImageAspectFlagBits::ePlane1 : return "Plane1";
6127       case ImageAspectFlagBits::ePlane2 : return "Plane2";
6128       case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT";
6129       case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT";
6130       case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT";
6131       case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT";
6132       default: return "invalid";
6133     }
6134   }
6135 
6136   enum class ImageCreateFlagBits : VkImageCreateFlags
6137   {
6138     eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
6139     eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
6140     eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
6141     eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
6142     eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
6143     eAlias = VK_IMAGE_CREATE_ALIAS_BIT,
6144     eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
6145     e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
6146     eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
6147     eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
6148     eProtected = VK_IMAGE_CREATE_PROTECTED_BIT,
6149     eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT,
6150     eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
6151     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
6152     eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
6153     e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
6154     eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
6155     eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
6156     eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
6157     eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
6158     eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
6159   };
6160 
to_string(ImageCreateFlagBits value)6161   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
6162   {
6163     switch ( value )
6164     {
6165       case ImageCreateFlagBits::eSparseBinding : return "SparseBinding";
6166       case ImageCreateFlagBits::eSparseResidency : return "SparseResidency";
6167       case ImageCreateFlagBits::eSparseAliased : return "SparseAliased";
6168       case ImageCreateFlagBits::eMutableFormat : return "MutableFormat";
6169       case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible";
6170       case ImageCreateFlagBits::eAlias : return "Alias";
6171       case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
6172       case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible";
6173       case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible";
6174       case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage";
6175       case ImageCreateFlagBits::eProtected : return "Protected";
6176       case ImageCreateFlagBits::eDisjoint : return "Disjoint";
6177       case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV";
6178       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT";
6179       case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
6180       default: return "invalid";
6181     }
6182   }
6183 
6184   enum class ImageLayout
6185   {
6186     eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
6187     eGeneral = VK_IMAGE_LAYOUT_GENERAL,
6188     eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
6189     eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
6190     eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
6191     eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
6192     eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
6193     eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
6194     ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED,
6195     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
6196     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
6197     eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
6198     eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
6199     eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
6200     eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
6201     ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
6202     eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
6203     eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
6204     eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
6205     eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
6206     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
6207     eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
6208     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
6209     eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
6210     eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
6211   };
6212 
to_string(ImageLayout value)6213   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
6214   {
6215     switch ( value )
6216     {
6217       case ImageLayout::eUndefined : return "Undefined";
6218       case ImageLayout::eGeneral : return "General";
6219       case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal";
6220       case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal";
6221       case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal";
6222       case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal";
6223       case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal";
6224       case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal";
6225       case ImageLayout::ePreinitialized : return "Preinitialized";
6226       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal";
6227       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal";
6228       case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal";
6229       case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal";
6230       case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal";
6231       case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal";
6232       case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR";
6233       case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR";
6234       case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV";
6235       case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT";
6236       default: return "invalid";
6237     }
6238   }
6239 
6240   enum class ImageTiling
6241   {
6242     eOptimal = VK_IMAGE_TILING_OPTIMAL,
6243     eLinear = VK_IMAGE_TILING_LINEAR,
6244     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
6245   };
6246 
to_string(ImageTiling value)6247   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
6248   {
6249     switch ( value )
6250     {
6251       case ImageTiling::eOptimal : return "Optimal";
6252       case ImageTiling::eLinear : return "Linear";
6253       case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT";
6254       default: return "invalid";
6255     }
6256   }
6257 
6258   enum class ImageType
6259   {
6260     e1D = VK_IMAGE_TYPE_1D,
6261     e2D = VK_IMAGE_TYPE_2D,
6262     e3D = VK_IMAGE_TYPE_3D
6263   };
6264 
to_string(ImageType value)6265   VULKAN_HPP_INLINE std::string to_string( ImageType value )
6266   {
6267     switch ( value )
6268     {
6269       case ImageType::e1D : return "1D";
6270       case ImageType::e2D : return "2D";
6271       case ImageType::e3D : return "3D";
6272       default: return "invalid";
6273     }
6274   }
6275 
6276   enum class ImageUsageFlagBits : VkImageUsageFlags
6277   {
6278     eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
6279     eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
6280     eSampled = VK_IMAGE_USAGE_SAMPLED_BIT,
6281     eStorage = VK_IMAGE_USAGE_STORAGE_BIT,
6282     eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
6283     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
6284     eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
6285     eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
6286     eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
6287     eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
6288   };
6289 
to_string(ImageUsageFlagBits value)6290   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
6291   {
6292     switch ( value )
6293     {
6294       case ImageUsageFlagBits::eTransferSrc : return "TransferSrc";
6295       case ImageUsageFlagBits::eTransferDst : return "TransferDst";
6296       case ImageUsageFlagBits::eSampled : return "Sampled";
6297       case ImageUsageFlagBits::eStorage : return "Storage";
6298       case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment";
6299       case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
6300       case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment";
6301       case ImageUsageFlagBits::eInputAttachment : return "InputAttachment";
6302       case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
6303       case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
6304       default: return "invalid";
6305     }
6306   }
6307 
6308   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
6309   {
6310     eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
6311     eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
6312   };
6313 
to_string(ImageViewCreateFlagBits value)6314   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
6315   {
6316     switch ( value )
6317     {
6318       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT";
6319       case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT : return "FragmentDensityMapDeferredEXT";
6320       default: return "invalid";
6321     }
6322   }
6323 
6324   enum class ImageViewType
6325   {
6326     e1D = VK_IMAGE_VIEW_TYPE_1D,
6327     e2D = VK_IMAGE_VIEW_TYPE_2D,
6328     e3D = VK_IMAGE_VIEW_TYPE_3D,
6329     eCube = VK_IMAGE_VIEW_TYPE_CUBE,
6330     e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
6331     e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
6332     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
6333   };
6334 
to_string(ImageViewType value)6335   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
6336   {
6337     switch ( value )
6338     {
6339       case ImageViewType::e1D : return "1D";
6340       case ImageViewType::e2D : return "2D";
6341       case ImageViewType::e3D : return "3D";
6342       case ImageViewType::eCube : return "Cube";
6343       case ImageViewType::e1DArray : return "1DArray";
6344       case ImageViewType::e2DArray : return "2DArray";
6345       case ImageViewType::eCubeArray : return "CubeArray";
6346       default: return "invalid";
6347     }
6348   }
6349 
6350   enum class IndexType
6351   {
6352     eUint16 = VK_INDEX_TYPE_UINT16,
6353     eUint32 = VK_INDEX_TYPE_UINT32,
6354     eNoneKHR = VK_INDEX_TYPE_NONE_KHR,
6355     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
6356     eNoneNV = VK_INDEX_TYPE_NONE_NV
6357   };
6358 
to_string(IndexType value)6359   VULKAN_HPP_INLINE std::string to_string( IndexType value )
6360   {
6361     switch ( value )
6362     {
6363       case IndexType::eUint16 : return "Uint16";
6364       case IndexType::eUint32 : return "Uint32";
6365       case IndexType::eNoneKHR : return "NoneKHR";
6366       case IndexType::eUint8EXT : return "Uint8EXT";
6367       default: return "invalid";
6368     }
6369   }
6370 
6371   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
6372   {
6373     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
6374     eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
6375     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
6376   };
6377 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)6378   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
6379   {
6380     switch ( value )
6381     {
6382       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess : return "ExplicitPreprocess";
6383       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences : return "IndexedSequences";
6384       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences : return "UnorderedSequences";
6385       default: return "invalid";
6386     }
6387   }
6388 
6389   enum class IndirectCommandsTokenTypeNV
6390   {
6391     eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
6392     eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
6393     eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
6394     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
6395     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
6396     eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
6397     eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
6398     eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
6399   };
6400 
to_string(IndirectCommandsTokenTypeNV value)6401   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
6402   {
6403     switch ( value )
6404     {
6405       case IndirectCommandsTokenTypeNV::eShaderGroup : return "ShaderGroup";
6406       case IndirectCommandsTokenTypeNV::eStateFlags : return "StateFlags";
6407       case IndirectCommandsTokenTypeNV::eIndexBuffer : return "IndexBuffer";
6408       case IndirectCommandsTokenTypeNV::eVertexBuffer : return "VertexBuffer";
6409       case IndirectCommandsTokenTypeNV::ePushConstant : return "PushConstant";
6410       case IndirectCommandsTokenTypeNV::eDrawIndexed : return "DrawIndexed";
6411       case IndirectCommandsTokenTypeNV::eDraw : return "Draw";
6412       case IndirectCommandsTokenTypeNV::eDrawTasks : return "DrawTasks";
6413       default: return "invalid";
6414     }
6415   }
6416 
6417   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
6418   {
6419     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
6420   };
6421 
to_string(IndirectStateFlagBitsNV value)6422   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
6423   {
6424     switch ( value )
6425     {
6426       case IndirectStateFlagBitsNV::eFlagFrontface : return "FlagFrontface";
6427       default: return "invalid";
6428     }
6429   }
6430 
6431   enum class InstanceCreateFlagBits
6432   {};
6433 
to_string(InstanceCreateFlagBits)6434   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
6435   {
6436     return "(void)";
6437   }
6438 
6439   enum class InternalAllocationType
6440   {
6441     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
6442   };
6443 
to_string(InternalAllocationType value)6444   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
6445   {
6446     switch ( value )
6447     {
6448       case InternalAllocationType::eExecutable : return "Executable";
6449       default: return "invalid";
6450     }
6451   }
6452 
6453   enum class LineRasterizationModeEXT
6454   {
6455     eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
6456     eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
6457     eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
6458     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
6459   };
6460 
to_string(LineRasterizationModeEXT value)6461   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
6462   {
6463     switch ( value )
6464     {
6465       case LineRasterizationModeEXT::eDefault : return "Default";
6466       case LineRasterizationModeEXT::eRectangular : return "Rectangular";
6467       case LineRasterizationModeEXT::eBresenham : return "Bresenham";
6468       case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth";
6469       default: return "invalid";
6470     }
6471   }
6472 
6473   enum class LogicOp
6474   {
6475     eClear = VK_LOGIC_OP_CLEAR,
6476     eAnd = VK_LOGIC_OP_AND,
6477     eAndReverse = VK_LOGIC_OP_AND_REVERSE,
6478     eCopy = VK_LOGIC_OP_COPY,
6479     eAndInverted = VK_LOGIC_OP_AND_INVERTED,
6480     eNoOp = VK_LOGIC_OP_NO_OP,
6481     eXor = VK_LOGIC_OP_XOR,
6482     eOr = VK_LOGIC_OP_OR,
6483     eNor = VK_LOGIC_OP_NOR,
6484     eEquivalent = VK_LOGIC_OP_EQUIVALENT,
6485     eInvert = VK_LOGIC_OP_INVERT,
6486     eOrReverse = VK_LOGIC_OP_OR_REVERSE,
6487     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
6488     eOrInverted = VK_LOGIC_OP_OR_INVERTED,
6489     eNand = VK_LOGIC_OP_NAND,
6490     eSet = VK_LOGIC_OP_SET
6491   };
6492 
to_string(LogicOp value)6493   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
6494   {
6495     switch ( value )
6496     {
6497       case LogicOp::eClear : return "Clear";
6498       case LogicOp::eAnd : return "And";
6499       case LogicOp::eAndReverse : return "AndReverse";
6500       case LogicOp::eCopy : return "Copy";
6501       case LogicOp::eAndInverted : return "AndInverted";
6502       case LogicOp::eNoOp : return "NoOp";
6503       case LogicOp::eXor : return "Xor";
6504       case LogicOp::eOr : return "Or";
6505       case LogicOp::eNor : return "Nor";
6506       case LogicOp::eEquivalent : return "Equivalent";
6507       case LogicOp::eInvert : return "Invert";
6508       case LogicOp::eOrReverse : return "OrReverse";
6509       case LogicOp::eCopyInverted : return "CopyInverted";
6510       case LogicOp::eOrInverted : return "OrInverted";
6511       case LogicOp::eNand : return "Nand";
6512       case LogicOp::eSet : return "Set";
6513       default: return "invalid";
6514     }
6515   }
6516 
6517   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
6518   {
6519     eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
6520     eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
6521     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
6522   };
6523   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
6524 
to_string(MemoryAllocateFlagBits value)6525   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
6526   {
6527     switch ( value )
6528     {
6529       case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask";
6530       case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress";
6531       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
6532       default: return "invalid";
6533     }
6534   }
6535 
6536   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
6537   {
6538     eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
6539     eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
6540     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
6541   };
6542 
to_string(MemoryHeapFlagBits value)6543   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
6544   {
6545     switch ( value )
6546     {
6547       case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal";
6548       case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance";
6549       default: return "invalid";
6550     }
6551   }
6552 
6553   enum class MemoryOverallocationBehaviorAMD
6554   {
6555     eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
6556     eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
6557     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
6558   };
6559 
to_string(MemoryOverallocationBehaviorAMD value)6560   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
6561   {
6562     switch ( value )
6563     {
6564       case MemoryOverallocationBehaviorAMD::eDefault : return "Default";
6565       case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed";
6566       case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed";
6567       default: return "invalid";
6568     }
6569   }
6570 
6571   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
6572   {
6573     eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
6574     eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
6575     eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
6576     eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
6577     eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
6578     eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT,
6579     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
6580     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
6581   };
6582 
to_string(MemoryPropertyFlagBits value)6583   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
6584   {
6585     switch ( value )
6586     {
6587       case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal";
6588       case MemoryPropertyFlagBits::eHostVisible : return "HostVisible";
6589       case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent";
6590       case MemoryPropertyFlagBits::eHostCached : return "HostCached";
6591       case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated";
6592       case MemoryPropertyFlagBits::eProtected : return "Protected";
6593       case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD";
6594       case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD";
6595       default: return "invalid";
6596     }
6597   }
6598 
6599   enum class ObjectType
6600   {
6601     eUnknown = VK_OBJECT_TYPE_UNKNOWN,
6602     eInstance = VK_OBJECT_TYPE_INSTANCE,
6603     ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
6604     eDevice = VK_OBJECT_TYPE_DEVICE,
6605     eQueue = VK_OBJECT_TYPE_QUEUE,
6606     eSemaphore = VK_OBJECT_TYPE_SEMAPHORE,
6607     eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER,
6608     eFence = VK_OBJECT_TYPE_FENCE,
6609     eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY,
6610     eBuffer = VK_OBJECT_TYPE_BUFFER,
6611     eImage = VK_OBJECT_TYPE_IMAGE,
6612     eEvent = VK_OBJECT_TYPE_EVENT,
6613     eQueryPool = VK_OBJECT_TYPE_QUERY_POOL,
6614     eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW,
6615     eImageView = VK_OBJECT_TYPE_IMAGE_VIEW,
6616     eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE,
6617     ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE,
6618     ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
6619     eRenderPass = VK_OBJECT_TYPE_RENDER_PASS,
6620     ePipeline = VK_OBJECT_TYPE_PIPELINE,
6621     eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
6622     eSampler = VK_OBJECT_TYPE_SAMPLER,
6623     eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
6624     eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET,
6625     eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER,
6626     eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL,
6627     eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
6628     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
6629     eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR,
6630     eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
6631     eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR,
6632     eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
6633     eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
6634     eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
6635     eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
6636     eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
6637     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
6638     eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
6639     eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
6640     ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
6641     eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
6642     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
6643     eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
6644   };
6645 
to_string(ObjectType value)6646   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
6647   {
6648     switch ( value )
6649     {
6650       case ObjectType::eUnknown : return "Unknown";
6651       case ObjectType::eInstance : return "Instance";
6652       case ObjectType::ePhysicalDevice : return "PhysicalDevice";
6653       case ObjectType::eDevice : return "Device";
6654       case ObjectType::eQueue : return "Queue";
6655       case ObjectType::eSemaphore : return "Semaphore";
6656       case ObjectType::eCommandBuffer : return "CommandBuffer";
6657       case ObjectType::eFence : return "Fence";
6658       case ObjectType::eDeviceMemory : return "DeviceMemory";
6659       case ObjectType::eBuffer : return "Buffer";
6660       case ObjectType::eImage : return "Image";
6661       case ObjectType::eEvent : return "Event";
6662       case ObjectType::eQueryPool : return "QueryPool";
6663       case ObjectType::eBufferView : return "BufferView";
6664       case ObjectType::eImageView : return "ImageView";
6665       case ObjectType::eShaderModule : return "ShaderModule";
6666       case ObjectType::ePipelineCache : return "PipelineCache";
6667       case ObjectType::ePipelineLayout : return "PipelineLayout";
6668       case ObjectType::eRenderPass : return "RenderPass";
6669       case ObjectType::ePipeline : return "Pipeline";
6670       case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout";
6671       case ObjectType::eSampler : return "Sampler";
6672       case ObjectType::eDescriptorPool : return "DescriptorPool";
6673       case ObjectType::eDescriptorSet : return "DescriptorSet";
6674       case ObjectType::eFramebuffer : return "Framebuffer";
6675       case ObjectType::eCommandPool : return "CommandPool";
6676       case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
6677       case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
6678       case ObjectType::eSurfaceKHR : return "SurfaceKHR";
6679       case ObjectType::eSwapchainKHR : return "SwapchainKHR";
6680       case ObjectType::eDisplayKHR : return "DisplayKHR";
6681       case ObjectType::eDisplayModeKHR : return "DisplayModeKHR";
6682       case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
6683       case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT";
6684       case ObjectType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
6685       case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT";
6686       case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL";
6687       case ObjectType::eDeferredOperationKHR : return "DeferredOperationKHR";
6688       case ObjectType::eIndirectCommandsLayoutNV : return "IndirectCommandsLayoutNV";
6689       case ObjectType::ePrivateDataSlotEXT : return "PrivateDataSlotEXT";
6690       default: return "invalid";
6691     }
6692   }
6693 
6694   template<ObjectType value>
6695   struct cpp_type
6696   {};
6697 
6698   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
6699   {
6700     eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
6701     eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
6702     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
6703     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
6704   };
6705   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
6706 
to_string(PeerMemoryFeatureFlagBits value)6707   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
6708   {
6709     switch ( value )
6710     {
6711       case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc";
6712       case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst";
6713       case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc";
6714       case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst";
6715       default: return "invalid";
6716     }
6717   }
6718 
6719   enum class PerformanceConfigurationTypeINTEL
6720   {
6721     eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
6722   };
6723 
to_string(PerformanceConfigurationTypeINTEL value)6724   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
6725   {
6726     switch ( value )
6727     {
6728       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated";
6729       default: return "invalid";
6730     }
6731   }
6732 
6733   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
6734   {
6735     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,
6736     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR
6737   };
6738 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)6739   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
6740   {
6741     switch ( value )
6742     {
6743       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting";
6744       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted";
6745       default: return "invalid";
6746     }
6747   }
6748 
6749   enum class PerformanceCounterScopeKHR
6750   {
6751     eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
6752     eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
6753     eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
6754     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6755     eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR,
6756     eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR
6757   };
6758 
to_string(PerformanceCounterScopeKHR value)6759   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
6760   {
6761     switch ( value )
6762     {
6763       case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer";
6764       case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass";
6765       case PerformanceCounterScopeKHR::eCommand : return "Command";
6766       default: return "invalid";
6767     }
6768   }
6769 
6770   enum class PerformanceCounterStorageKHR
6771   {
6772     eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6773     eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
6774     eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
6775     eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
6776     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
6777     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
6778   };
6779 
to_string(PerformanceCounterStorageKHR value)6780   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
6781   {
6782     switch ( value )
6783     {
6784       case PerformanceCounterStorageKHR::eInt32 : return "Int32";
6785       case PerformanceCounterStorageKHR::eInt64 : return "Int64";
6786       case PerformanceCounterStorageKHR::eUint32 : return "Uint32";
6787       case PerformanceCounterStorageKHR::eUint64 : return "Uint64";
6788       case PerformanceCounterStorageKHR::eFloat32 : return "Float32";
6789       case PerformanceCounterStorageKHR::eFloat64 : return "Float64";
6790       default: return "invalid";
6791     }
6792   }
6793 
6794   enum class PerformanceCounterUnitKHR
6795   {
6796     eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6797     ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
6798     eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
6799     eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
6800     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
6801     eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
6802     eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
6803     eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
6804     eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
6805     eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
6806     eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
6807   };
6808 
to_string(PerformanceCounterUnitKHR value)6809   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
6810   {
6811     switch ( value )
6812     {
6813       case PerformanceCounterUnitKHR::eGeneric : return "Generic";
6814       case PerformanceCounterUnitKHR::ePercentage : return "Percentage";
6815       case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds";
6816       case PerformanceCounterUnitKHR::eBytes : return "Bytes";
6817       case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond";
6818       case PerformanceCounterUnitKHR::eKelvin : return "Kelvin";
6819       case PerformanceCounterUnitKHR::eWatts : return "Watts";
6820       case PerformanceCounterUnitKHR::eVolts : return "Volts";
6821       case PerformanceCounterUnitKHR::eAmps : return "Amps";
6822       case PerformanceCounterUnitKHR::eHertz : return "Hertz";
6823       case PerformanceCounterUnitKHR::eCycles : return "Cycles";
6824       default: return "invalid";
6825     }
6826   }
6827 
6828   enum class PerformanceOverrideTypeINTEL
6829   {
6830     eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
6831     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
6832   };
6833 
to_string(PerformanceOverrideTypeINTEL value)6834   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
6835   {
6836     switch ( value )
6837     {
6838       case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware";
6839       case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches";
6840       default: return "invalid";
6841     }
6842   }
6843 
6844   enum class PerformanceParameterTypeINTEL
6845   {
6846     eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
6847     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
6848   };
6849 
to_string(PerformanceParameterTypeINTEL value)6850   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
6851   {
6852     switch ( value )
6853     {
6854       case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported";
6855       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits";
6856       default: return "invalid";
6857     }
6858   }
6859 
6860   enum class PerformanceValueTypeINTEL
6861   {
6862     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
6863     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
6864     eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
6865     eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
6866     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
6867   };
6868 
to_string(PerformanceValueTypeINTEL value)6869   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
6870   {
6871     switch ( value )
6872     {
6873       case PerformanceValueTypeINTEL::eUint32 : return "Uint32";
6874       case PerformanceValueTypeINTEL::eUint64 : return "Uint64";
6875       case PerformanceValueTypeINTEL::eFloat : return "Float";
6876       case PerformanceValueTypeINTEL::eBool : return "Bool";
6877       case PerformanceValueTypeINTEL::eString : return "String";
6878       default: return "invalid";
6879     }
6880   }
6881 
6882   enum class PhysicalDeviceType
6883   {
6884     eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER,
6885     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
6886     eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
6887     eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
6888     eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU
6889   };
6890 
to_string(PhysicalDeviceType value)6891   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
6892   {
6893     switch ( value )
6894     {
6895       case PhysicalDeviceType::eOther : return "Other";
6896       case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu";
6897       case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu";
6898       case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu";
6899       case PhysicalDeviceType::eCpu : return "Cpu";
6900       default: return "invalid";
6901     }
6902   }
6903 
6904   enum class PipelineBindPoint
6905   {
6906     eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
6907     eCompute = VK_PIPELINE_BIND_POINT_COMPUTE,
6908     eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
6909     eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
6910   };
6911 
to_string(PipelineBindPoint value)6912   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
6913   {
6914     switch ( value )
6915     {
6916       case PipelineBindPoint::eGraphics : return "Graphics";
6917       case PipelineBindPoint::eCompute : return "Compute";
6918       case PipelineBindPoint::eRayTracingKHR : return "RayTracingKHR";
6919       default: return "invalid";
6920     }
6921   }
6922 
6923   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
6924   {
6925     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
6926   };
6927 
to_string(PipelineCacheCreateFlagBits value)6928   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
6929   {
6930     switch ( value )
6931     {
6932       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT : return "ExternallySynchronizedEXT";
6933       default: return "invalid";
6934     }
6935   }
6936 
6937   enum class PipelineCacheHeaderVersion
6938   {
6939     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
6940   };
6941 
to_string(PipelineCacheHeaderVersion value)6942   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
6943   {
6944     switch ( value )
6945     {
6946       case PipelineCacheHeaderVersion::eOne : return "One";
6947       default: return "invalid";
6948     }
6949   }
6950 
6951   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
6952   {};
6953 
to_string(PipelineCompilerControlFlagBitsAMD)6954   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
6955   {
6956     return "(void)";
6957   }
6958 
6959   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
6960   {
6961     eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
6962     eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
6963     eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
6964     eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
6965     eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
6966     eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
6967     eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
6968     eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
6969     eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
6970     eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
6971     eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
6972     eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
6973     eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
6974     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
6975     eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
6976     eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
6977     eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
6978     eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
6979     eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
6980     eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
6981   };
6982 
to_string(PipelineCreateFlagBits value)6983   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
6984   {
6985     switch ( value )
6986     {
6987       case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization";
6988       case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives";
6989       case PipelineCreateFlagBits::eDerivative : return "Derivative";
6990       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex";
6991       case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase";
6992       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR : return "RayTracingNoNullAnyHitShadersKHR";
6993       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR : return "RayTracingNoNullClosestHitShadersKHR";
6994       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR : return "RayTracingNoNullMissShadersKHR";
6995       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR : return "RayTracingNoNullIntersectionShadersKHR";
6996       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR : return "RayTracingSkipTrianglesKHR";
6997       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR : return "RayTracingSkipAabbsKHR";
6998       case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV";
6999       case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR";
7000       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR";
7001       case PipelineCreateFlagBits::eIndirectBindableNV : return "IndirectBindableNV";
7002       case PipelineCreateFlagBits::eLibraryKHR : return "LibraryKHR";
7003       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT : return "FailOnPipelineCompileRequiredEXT";
7004       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT : return "EarlyReturnOnFailureEXT";
7005       default: return "invalid";
7006     }
7007   }
7008 
7009   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
7010   {
7011     eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
7012     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
7013     eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
7014   };
7015 
to_string(PipelineCreationFeedbackFlagBitsEXT value)7016   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
7017   {
7018     switch ( value )
7019     {
7020       case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid";
7021       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit";
7022       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration";
7023       default: return "invalid";
7024     }
7025   }
7026 
7027   enum class PipelineExecutableStatisticFormatKHR
7028   {
7029     eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7030     eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
7031     eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
7032     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
7033   };
7034 
to_string(PipelineExecutableStatisticFormatKHR value)7035   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
7036   {
7037     switch ( value )
7038     {
7039       case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32";
7040       case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64";
7041       case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64";
7042       case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64";
7043       default: return "invalid";
7044     }
7045   }
7046 
7047   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
7048   {
7049     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
7050     eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
7051   };
7052 
to_string(PipelineShaderStageCreateFlagBits value)7053   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
7054   {
7055     switch ( value )
7056     {
7057       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT";
7058       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT";
7059       default: return "invalid";
7060     }
7061   }
7062 
7063   enum class PipelineStageFlagBits : VkPipelineStageFlags
7064   {
7065     eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
7066     eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
7067     eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
7068     eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
7069     eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
7070     eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
7071     eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
7072     eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
7073     eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
7074     eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
7075     eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
7076     eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
7077     eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT,
7078     eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
7079     eHost = VK_PIPELINE_STAGE_HOST_BIT,
7080     eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
7081     eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
7082     eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
7083     eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
7084     eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
7085     eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
7086     eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
7087     eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
7088     eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
7089     eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
7090     eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
7091     eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
7092     eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV
7093   };
7094 
to_string(PipelineStageFlagBits value)7095   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
7096   {
7097     switch ( value )
7098     {
7099       case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe";
7100       case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect";
7101       case PipelineStageFlagBits::eVertexInput : return "VertexInput";
7102       case PipelineStageFlagBits::eVertexShader : return "VertexShader";
7103       case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader";
7104       case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader";
7105       case PipelineStageFlagBits::eGeometryShader : return "GeometryShader";
7106       case PipelineStageFlagBits::eFragmentShader : return "FragmentShader";
7107       case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests";
7108       case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests";
7109       case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput";
7110       case PipelineStageFlagBits::eComputeShader : return "ComputeShader";
7111       case PipelineStageFlagBits::eTransfer : return "Transfer";
7112       case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe";
7113       case PipelineStageFlagBits::eHost : return "Host";
7114       case PipelineStageFlagBits::eAllGraphics : return "AllGraphics";
7115       case PipelineStageFlagBits::eAllCommands : return "AllCommands";
7116       case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT";
7117       case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
7118       case PipelineStageFlagBits::eRayTracingShaderKHR : return "RayTracingShaderKHR";
7119       case PipelineStageFlagBits::eAccelerationStructureBuildKHR : return "AccelerationStructureBuildKHR";
7120       case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
7121       case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV";
7122       case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV";
7123       case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT";
7124       case PipelineStageFlagBits::eCommandPreprocessNV : return "CommandPreprocessNV";
7125       default: return "invalid";
7126     }
7127   }
7128 
7129   enum class PointClippingBehavior
7130   {
7131     eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
7132     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
7133   };
7134   using PointClippingBehaviorKHR = PointClippingBehavior;
7135 
to_string(PointClippingBehavior value)7136   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
7137   {
7138     switch ( value )
7139     {
7140       case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes";
7141       case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly";
7142       default: return "invalid";
7143     }
7144   }
7145 
7146   enum class PolygonMode
7147   {
7148     eFill = VK_POLYGON_MODE_FILL,
7149     eLine = VK_POLYGON_MODE_LINE,
7150     ePoint = VK_POLYGON_MODE_POINT,
7151     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
7152   };
7153 
to_string(PolygonMode value)7154   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
7155   {
7156     switch ( value )
7157     {
7158       case PolygonMode::eFill : return "Fill";
7159       case PolygonMode::eLine : return "Line";
7160       case PolygonMode::ePoint : return "Point";
7161       case PolygonMode::eFillRectangleNV : return "FillRectangleNV";
7162       default: return "invalid";
7163     }
7164   }
7165 
7166   enum class PresentModeKHR
7167   {
7168     eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
7169     eMailbox = VK_PRESENT_MODE_MAILBOX_KHR,
7170     eFifo = VK_PRESENT_MODE_FIFO_KHR,
7171     eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
7172     eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
7173     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
7174   };
7175 
to_string(PresentModeKHR value)7176   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
7177   {
7178     switch ( value )
7179     {
7180       case PresentModeKHR::eImmediate : return "Immediate";
7181       case PresentModeKHR::eMailbox : return "Mailbox";
7182       case PresentModeKHR::eFifo : return "Fifo";
7183       case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed";
7184       case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh";
7185       case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh";
7186       default: return "invalid";
7187     }
7188   }
7189 
7190   enum class PrimitiveTopology
7191   {
7192     ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
7193     eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
7194     eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
7195     eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
7196     eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
7197     eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
7198     eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
7199     eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
7200     eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
7201     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
7202     ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
7203   };
7204 
to_string(PrimitiveTopology value)7205   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
7206   {
7207     switch ( value )
7208     {
7209       case PrimitiveTopology::ePointList : return "PointList";
7210       case PrimitiveTopology::eLineList : return "LineList";
7211       case PrimitiveTopology::eLineStrip : return "LineStrip";
7212       case PrimitiveTopology::eTriangleList : return "TriangleList";
7213       case PrimitiveTopology::eTriangleStrip : return "TriangleStrip";
7214       case PrimitiveTopology::eTriangleFan : return "TriangleFan";
7215       case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency";
7216       case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency";
7217       case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency";
7218       case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency";
7219       case PrimitiveTopology::ePatchList : return "PatchList";
7220       default: return "invalid";
7221     }
7222   }
7223 
7224   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
7225   {};
7226 
to_string(PrivateDataSlotCreateFlagBitsEXT)7227   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
7228   {
7229     return "(void)";
7230   }
7231 
7232   enum class QueryControlFlagBits : VkQueryControlFlags
7233   {
7234     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
7235   };
7236 
to_string(QueryControlFlagBits value)7237   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
7238   {
7239     switch ( value )
7240     {
7241       case QueryControlFlagBits::ePrecise : return "Precise";
7242       default: return "invalid";
7243     }
7244   }
7245 
7246   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
7247   {
7248     eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
7249     eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
7250     eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
7251     eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
7252     eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
7253     eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
7254     eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
7255     eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
7256     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
7257     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
7258     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
7259   };
7260 
to_string(QueryPipelineStatisticFlagBits value)7261   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
7262   {
7263     switch ( value )
7264     {
7265       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices";
7266       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives";
7267       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations";
7268       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations";
7269       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives";
7270       case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations";
7271       case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives";
7272       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations";
7273       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches";
7274       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations";
7275       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations";
7276       default: return "invalid";
7277     }
7278   }
7279 
7280   enum class QueryPoolCreateFlagBits
7281   {};
7282 
to_string(QueryPoolCreateFlagBits)7283   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
7284   {
7285     return "(void)";
7286   }
7287 
7288   enum class QueryPoolSamplingModeINTEL
7289   {
7290     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
7291   };
7292 
to_string(QueryPoolSamplingModeINTEL value)7293   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
7294   {
7295     switch ( value )
7296     {
7297       case QueryPoolSamplingModeINTEL::eManual : return "Manual";
7298       default: return "invalid";
7299     }
7300   }
7301 
7302   enum class QueryResultFlagBits : VkQueryResultFlags
7303   {
7304     e64 = VK_QUERY_RESULT_64_BIT,
7305     eWait = VK_QUERY_RESULT_WAIT_BIT,
7306     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
7307     ePartial = VK_QUERY_RESULT_PARTIAL_BIT
7308   };
7309 
to_string(QueryResultFlagBits value)7310   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
7311   {
7312     switch ( value )
7313     {
7314       case QueryResultFlagBits::e64 : return "64";
7315       case QueryResultFlagBits::eWait : return "Wait";
7316       case QueryResultFlagBits::eWithAvailability : return "WithAvailability";
7317       case QueryResultFlagBits::ePartial : return "Partial";
7318       default: return "invalid";
7319     }
7320   }
7321 
7322   enum class QueryType
7323   {
7324     eOcclusion = VK_QUERY_TYPE_OCCLUSION,
7325     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
7326     eTimestamp = VK_QUERY_TYPE_TIMESTAMP,
7327     eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
7328     ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
7329     eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
7330     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
7331     ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
7332     eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
7333   };
7334 
to_string(QueryType value)7335   VULKAN_HPP_INLINE std::string to_string( QueryType value )
7336   {
7337     switch ( value )
7338     {
7339       case QueryType::eOcclusion : return "Occlusion";
7340       case QueryType::ePipelineStatistics : return "PipelineStatistics";
7341       case QueryType::eTimestamp : return "Timestamp";
7342       case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT";
7343       case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR";
7344       case QueryType::eAccelerationStructureCompactedSizeKHR : return "AccelerationStructureCompactedSizeKHR";
7345       case QueryType::eAccelerationStructureSerializationSizeKHR : return "AccelerationStructureSerializationSizeKHR";
7346       case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL";
7347       default: return "invalid";
7348     }
7349   }
7350 
7351   enum class QueueFlagBits : VkQueueFlags
7352   {
7353     eGraphics = VK_QUEUE_GRAPHICS_BIT,
7354     eCompute = VK_QUEUE_COMPUTE_BIT,
7355     eTransfer = VK_QUEUE_TRANSFER_BIT,
7356     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
7357     eProtected = VK_QUEUE_PROTECTED_BIT
7358   };
7359 
to_string(QueueFlagBits value)7360   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
7361   {
7362     switch ( value )
7363     {
7364       case QueueFlagBits::eGraphics : return "Graphics";
7365       case QueueFlagBits::eCompute : return "Compute";
7366       case QueueFlagBits::eTransfer : return "Transfer";
7367       case QueueFlagBits::eSparseBinding : return "SparseBinding";
7368       case QueueFlagBits::eProtected : return "Protected";
7369       default: return "invalid";
7370     }
7371   }
7372 
7373   enum class QueueGlobalPriorityEXT
7374   {
7375     eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
7376     eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
7377     eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
7378     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
7379   };
7380 
to_string(QueueGlobalPriorityEXT value)7381   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
7382   {
7383     switch ( value )
7384     {
7385       case QueueGlobalPriorityEXT::eLow : return "Low";
7386       case QueueGlobalPriorityEXT::eMedium : return "Medium";
7387       case QueueGlobalPriorityEXT::eHigh : return "High";
7388       case QueueGlobalPriorityEXT::eRealtime : return "Realtime";
7389       default: return "invalid";
7390     }
7391   }
7392 
7393   enum class RasterizationOrderAMD
7394   {
7395     eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD,
7396     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
7397   };
7398 
to_string(RasterizationOrderAMD value)7399   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
7400   {
7401     switch ( value )
7402     {
7403       case RasterizationOrderAMD::eStrict : return "Strict";
7404       case RasterizationOrderAMD::eRelaxed : return "Relaxed";
7405       default: return "invalid";
7406     }
7407   }
7408 
7409   enum class RayTracingShaderGroupTypeKHR
7410   {
7411     eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
7412     eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
7413     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
7414   };
7415   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
7416 
to_string(RayTracingShaderGroupTypeKHR value)7417   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
7418   {
7419     switch ( value )
7420     {
7421       case RayTracingShaderGroupTypeKHR::eGeneral : return "General";
7422       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup : return "TrianglesHitGroup";
7423       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup : return "ProceduralHitGroup";
7424       default: return "invalid";
7425     }
7426   }
7427 
7428   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
7429   {
7430     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
7431   };
7432 
to_string(RenderPassCreateFlagBits value)7433   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
7434   {
7435     switch ( value )
7436     {
7437       case RenderPassCreateFlagBits::eTransformQCOM : return "TransformQCOM";
7438       default: return "invalid";
7439     }
7440   }
7441 
7442   enum class ResolveModeFlagBits : VkResolveModeFlags
7443   {
7444     eNone = VK_RESOLVE_MODE_NONE,
7445     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
7446     eAverage = VK_RESOLVE_MODE_AVERAGE_BIT,
7447     eMin = VK_RESOLVE_MODE_MIN_BIT,
7448     eMax = VK_RESOLVE_MODE_MAX_BIT
7449   };
7450   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
7451 
to_string(ResolveModeFlagBits value)7452   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
7453   {
7454     switch ( value )
7455     {
7456       case ResolveModeFlagBits::eNone : return "None";
7457       case ResolveModeFlagBits::eSampleZero : return "SampleZero";
7458       case ResolveModeFlagBits::eAverage : return "Average";
7459       case ResolveModeFlagBits::eMin : return "Min";
7460       case ResolveModeFlagBits::eMax : return "Max";
7461       default: return "invalid";
7462     }
7463   }
7464 
7465   enum class Result
7466   {
7467     eSuccess = VK_SUCCESS,
7468     eNotReady = VK_NOT_READY,
7469     eTimeout = VK_TIMEOUT,
7470     eEventSet = VK_EVENT_SET,
7471     eEventReset = VK_EVENT_RESET,
7472     eIncomplete = VK_INCOMPLETE,
7473     eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY,
7474     eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY,
7475     eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED,
7476     eErrorDeviceLost = VK_ERROR_DEVICE_LOST,
7477     eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED,
7478     eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT,
7479     eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT,
7480     eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT,
7481     eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER,
7482     eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS,
7483     eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED,
7484     eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL,
7485     eErrorUnknown = VK_ERROR_UNKNOWN,
7486     eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY,
7487     eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE,
7488     eErrorFragmentation = VK_ERROR_FRAGMENTATION,
7489     eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
7490     eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR,
7491     eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
7492     eSuboptimalKHR = VK_SUBOPTIMAL_KHR,
7493     eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR,
7494     eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
7495     eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT,
7496     eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV,
7497     eErrorIncompatibleVersionKHR = VK_ERROR_INCOMPATIBLE_VERSION_KHR,
7498     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
7499     eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT,
7500     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
7501     eThreadIdleKHR = VK_THREAD_IDLE_KHR,
7502     eThreadDoneKHR = VK_THREAD_DONE_KHR,
7503     eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR,
7504     eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR,
7505     ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
7506     eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT,
7507     eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
7508     eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
7509     eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
7510     eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
7511     eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT
7512   };
7513 
to_string(Result value)7514   VULKAN_HPP_INLINE std::string to_string( Result value )
7515   {
7516     switch ( value )
7517     {
7518       case Result::eSuccess : return "Success";
7519       case Result::eNotReady : return "NotReady";
7520       case Result::eTimeout : return "Timeout";
7521       case Result::eEventSet : return "EventSet";
7522       case Result::eEventReset : return "EventReset";
7523       case Result::eIncomplete : return "Incomplete";
7524       case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory";
7525       case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory";
7526       case Result::eErrorInitializationFailed : return "ErrorInitializationFailed";
7527       case Result::eErrorDeviceLost : return "ErrorDeviceLost";
7528       case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed";
7529       case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent";
7530       case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent";
7531       case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent";
7532       case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver";
7533       case Result::eErrorTooManyObjects : return "ErrorTooManyObjects";
7534       case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported";
7535       case Result::eErrorFragmentedPool : return "ErrorFragmentedPool";
7536       case Result::eErrorUnknown : return "ErrorUnknown";
7537       case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory";
7538       case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle";
7539       case Result::eErrorFragmentation : return "ErrorFragmentation";
7540       case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress";
7541       case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR";
7542       case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR";
7543       case Result::eSuboptimalKHR : return "SuboptimalKHR";
7544       case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR";
7545       case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR";
7546       case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT";
7547       case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV";
7548       case Result::eErrorIncompatibleVersionKHR : return "ErrorIncompatibleVersionKHR";
7549       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
7550       case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT";
7551       case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT";
7552       case Result::eThreadIdleKHR : return "ThreadIdleKHR";
7553       case Result::eThreadDoneKHR : return "ThreadDoneKHR";
7554       case Result::eOperationDeferredKHR : return "OperationDeferredKHR";
7555       case Result::eOperationNotDeferredKHR : return "OperationNotDeferredKHR";
7556       case Result::ePipelineCompileRequiredEXT : return "PipelineCompileRequiredEXT";
7557       default: return "invalid";
7558     }
7559   }
7560 
7561   enum class SampleCountFlagBits : VkSampleCountFlags
7562   {
7563     e1 = VK_SAMPLE_COUNT_1_BIT,
7564     e2 = VK_SAMPLE_COUNT_2_BIT,
7565     e4 = VK_SAMPLE_COUNT_4_BIT,
7566     e8 = VK_SAMPLE_COUNT_8_BIT,
7567     e16 = VK_SAMPLE_COUNT_16_BIT,
7568     e32 = VK_SAMPLE_COUNT_32_BIT,
7569     e64 = VK_SAMPLE_COUNT_64_BIT
7570   };
7571 
to_string(SampleCountFlagBits value)7572   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
7573   {
7574     switch ( value )
7575     {
7576       case SampleCountFlagBits::e1 : return "1";
7577       case SampleCountFlagBits::e2 : return "2";
7578       case SampleCountFlagBits::e4 : return "4";
7579       case SampleCountFlagBits::e8 : return "8";
7580       case SampleCountFlagBits::e16 : return "16";
7581       case SampleCountFlagBits::e32 : return "32";
7582       case SampleCountFlagBits::e64 : return "64";
7583       default: return "invalid";
7584     }
7585   }
7586 
7587   enum class SamplerAddressMode
7588   {
7589     eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
7590     eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
7591     eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
7592     eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
7593     eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
7594     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
7595   };
7596 
to_string(SamplerAddressMode value)7597   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
7598   {
7599     switch ( value )
7600     {
7601       case SamplerAddressMode::eRepeat : return "Repeat";
7602       case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat";
7603       case SamplerAddressMode::eClampToEdge : return "ClampToEdge";
7604       case SamplerAddressMode::eClampToBorder : return "ClampToBorder";
7605       case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge";
7606       default: return "invalid";
7607     }
7608   }
7609 
7610   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
7611   {
7612     eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
7613     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
7614   };
7615 
to_string(SamplerCreateFlagBits value)7616   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
7617   {
7618     switch ( value )
7619     {
7620       case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
7621       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT";
7622       default: return "invalid";
7623     }
7624   }
7625 
7626   enum class SamplerMipmapMode
7627   {
7628     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
7629     eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR
7630   };
7631 
to_string(SamplerMipmapMode value)7632   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
7633   {
7634     switch ( value )
7635     {
7636       case SamplerMipmapMode::eNearest : return "Nearest";
7637       case SamplerMipmapMode::eLinear : return "Linear";
7638       default: return "invalid";
7639     }
7640   }
7641 
7642   enum class SamplerReductionMode
7643   {
7644     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
7645     eMin = VK_SAMPLER_REDUCTION_MODE_MIN,
7646     eMax = VK_SAMPLER_REDUCTION_MODE_MAX
7647   };
7648   using SamplerReductionModeEXT = SamplerReductionMode;
7649 
to_string(SamplerReductionMode value)7650   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
7651   {
7652     switch ( value )
7653     {
7654       case SamplerReductionMode::eWeightedAverage : return "WeightedAverage";
7655       case SamplerReductionMode::eMin : return "Min";
7656       case SamplerReductionMode::eMax : return "Max";
7657       default: return "invalid";
7658     }
7659   }
7660 
7661   enum class SamplerYcbcrModelConversion
7662   {
7663     eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
7664     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
7665     eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
7666     eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
7667     eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
7668   };
7669   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
7670 
to_string(SamplerYcbcrModelConversion value)7671   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
7672   {
7673     switch ( value )
7674     {
7675       case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity";
7676       case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity";
7677       case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709";
7678       case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601";
7679       case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020";
7680       default: return "invalid";
7681     }
7682   }
7683 
7684   enum class SamplerYcbcrRange
7685   {
7686     eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
7687     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
7688   };
7689   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
7690 
to_string(SamplerYcbcrRange value)7691   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
7692   {
7693     switch ( value )
7694     {
7695       case SamplerYcbcrRange::eItuFull : return "ItuFull";
7696       case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow";
7697       default: return "invalid";
7698     }
7699   }
7700 
7701   enum class ScopeNV
7702   {
7703     eDevice = VK_SCOPE_DEVICE_NV,
7704     eWorkgroup = VK_SCOPE_WORKGROUP_NV,
7705     eSubgroup = VK_SCOPE_SUBGROUP_NV,
7706     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
7707   };
7708 
to_string(ScopeNV value)7709   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
7710   {
7711     switch ( value )
7712     {
7713       case ScopeNV::eDevice : return "Device";
7714       case ScopeNV::eWorkgroup : return "Workgroup";
7715       case ScopeNV::eSubgroup : return "Subgroup";
7716       case ScopeNV::eQueueFamily : return "QueueFamily";
7717       default: return "invalid";
7718     }
7719   }
7720 
7721   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
7722   {};
7723 
to_string(SemaphoreCreateFlagBits)7724   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
7725   {
7726     return "(void)";
7727   }
7728 
7729   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
7730   {
7731     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
7732   };
7733   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
7734 
to_string(SemaphoreImportFlagBits value)7735   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
7736   {
7737     switch ( value )
7738     {
7739       case SemaphoreImportFlagBits::eTemporary : return "Temporary";
7740       default: return "invalid";
7741     }
7742   }
7743 
7744   enum class SemaphoreType
7745   {
7746     eBinary = VK_SEMAPHORE_TYPE_BINARY,
7747     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
7748   };
7749   using SemaphoreTypeKHR = SemaphoreType;
7750 
to_string(SemaphoreType value)7751   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
7752   {
7753     switch ( value )
7754     {
7755       case SemaphoreType::eBinary : return "Binary";
7756       case SemaphoreType::eTimeline : return "Timeline";
7757       default: return "invalid";
7758     }
7759   }
7760 
7761   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
7762   {
7763     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
7764   };
7765   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
7766 
to_string(SemaphoreWaitFlagBits value)7767   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
7768   {
7769     switch ( value )
7770     {
7771       case SemaphoreWaitFlagBits::eAny : return "Any";
7772       default: return "invalid";
7773     }
7774   }
7775 
7776   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
7777   {};
7778 
to_string(ShaderCorePropertiesFlagBitsAMD)7779   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
7780   {
7781     return "(void)";
7782   }
7783 
7784   enum class ShaderFloatControlsIndependence
7785   {
7786     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
7787     eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
7788     eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
7789   };
7790   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
7791 
to_string(ShaderFloatControlsIndependence value)7792   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
7793   {
7794     switch ( value )
7795     {
7796       case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly";
7797       case ShaderFloatControlsIndependence::eAll : return "All";
7798       case ShaderFloatControlsIndependence::eNone : return "None";
7799       default: return "invalid";
7800     }
7801   }
7802 
7803   enum class ShaderInfoTypeAMD
7804   {
7805     eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
7806     eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD,
7807     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
7808   };
7809 
to_string(ShaderInfoTypeAMD value)7810   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
7811   {
7812     switch ( value )
7813     {
7814       case ShaderInfoTypeAMD::eStatistics : return "Statistics";
7815       case ShaderInfoTypeAMD::eBinary : return "Binary";
7816       case ShaderInfoTypeAMD::eDisassembly : return "Disassembly";
7817       default: return "invalid";
7818     }
7819   }
7820 
7821   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
7822   {};
7823 
to_string(ShaderModuleCreateFlagBits)7824   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
7825   {
7826     return "(void)";
7827   }
7828 
7829   enum class ShaderStageFlagBits : VkShaderStageFlags
7830   {
7831     eVertex = VK_SHADER_STAGE_VERTEX_BIT,
7832     eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
7833     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
7834     eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT,
7835     eFragment = VK_SHADER_STAGE_FRAGMENT_BIT,
7836     eCompute = VK_SHADER_STAGE_COMPUTE_BIT,
7837     eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS,
7838     eAll = VK_SHADER_STAGE_ALL,
7839     eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
7840     eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
7841     eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
7842     eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR,
7843     eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
7844     eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
7845     eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV,
7846     eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV,
7847     eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
7848     eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV,
7849     eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
7850     eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
7851     eMissNV = VK_SHADER_STAGE_MISS_BIT_NV,
7852     eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV
7853   };
7854 
to_string(ShaderStageFlagBits value)7855   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
7856   {
7857     switch ( value )
7858     {
7859       case ShaderStageFlagBits::eVertex : return "Vertex";
7860       case ShaderStageFlagBits::eTessellationControl : return "TessellationControl";
7861       case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation";
7862       case ShaderStageFlagBits::eGeometry : return "Geometry";
7863       case ShaderStageFlagBits::eFragment : return "Fragment";
7864       case ShaderStageFlagBits::eCompute : return "Compute";
7865       case ShaderStageFlagBits::eAllGraphics : return "AllGraphics";
7866       case ShaderStageFlagBits::eAll : return "All";
7867       case ShaderStageFlagBits::eRaygenKHR : return "RaygenKHR";
7868       case ShaderStageFlagBits::eAnyHitKHR : return "AnyHitKHR";
7869       case ShaderStageFlagBits::eClosestHitKHR : return "ClosestHitKHR";
7870       case ShaderStageFlagBits::eMissKHR : return "MissKHR";
7871       case ShaderStageFlagBits::eIntersectionKHR : return "IntersectionKHR";
7872       case ShaderStageFlagBits::eCallableKHR : return "CallableKHR";
7873       case ShaderStageFlagBits::eTaskNV : return "TaskNV";
7874       case ShaderStageFlagBits::eMeshNV : return "MeshNV";
7875       default: return "invalid";
7876     }
7877   }
7878 
7879   enum class ShadingRatePaletteEntryNV
7880   {
7881     eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
7882     e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
7883     e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
7884     e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
7885     e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
7886     e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
7887     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
7888     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
7889     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
7890     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
7891     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
7892     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
7893   };
7894 
to_string(ShadingRatePaletteEntryNV value)7895   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
7896   {
7897     switch ( value )
7898     {
7899       case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations";
7900       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
7901       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
7902       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
7903       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
7904       case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel";
7905       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
7906       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
7907       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
7908       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
7909       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
7910       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
7911       default: return "invalid";
7912     }
7913   }
7914 
7915   enum class SharingMode
7916   {
7917     eExclusive = VK_SHARING_MODE_EXCLUSIVE,
7918     eConcurrent = VK_SHARING_MODE_CONCURRENT
7919   };
7920 
to_string(SharingMode value)7921   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
7922   {
7923     switch ( value )
7924     {
7925       case SharingMode::eExclusive : return "Exclusive";
7926       case SharingMode::eConcurrent : return "Concurrent";
7927       default: return "invalid";
7928     }
7929   }
7930 
7931   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
7932   {
7933     eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
7934     eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
7935     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
7936   };
7937 
to_string(SparseImageFormatFlagBits value)7938   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
7939   {
7940     switch ( value )
7941     {
7942       case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail";
7943       case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize";
7944       case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize";
7945       default: return "invalid";
7946     }
7947   }
7948 
7949   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
7950   {
7951     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
7952   };
7953 
to_string(SparseMemoryBindFlagBits value)7954   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
7955   {
7956     switch ( value )
7957     {
7958       case SparseMemoryBindFlagBits::eMetadata : return "Metadata";
7959       default: return "invalid";
7960     }
7961   }
7962 
7963   enum class StencilFaceFlagBits : VkStencilFaceFlags
7964   {
7965     eFront = VK_STENCIL_FACE_FRONT_BIT,
7966     eBack = VK_STENCIL_FACE_BACK_BIT,
7967     eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK,
7968     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
7969   };
7970 
to_string(StencilFaceFlagBits value)7971   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
7972   {
7973     switch ( value )
7974     {
7975       case StencilFaceFlagBits::eFront : return "Front";
7976       case StencilFaceFlagBits::eBack : return "Back";
7977       case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack";
7978       default: return "invalid";
7979     }
7980   }
7981 
7982   enum class StencilOp
7983   {
7984     eKeep = VK_STENCIL_OP_KEEP,
7985     eZero = VK_STENCIL_OP_ZERO,
7986     eReplace = VK_STENCIL_OP_REPLACE,
7987     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
7988     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
7989     eInvert = VK_STENCIL_OP_INVERT,
7990     eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP,
7991     eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP
7992   };
7993 
to_string(StencilOp value)7994   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
7995   {
7996     switch ( value )
7997     {
7998       case StencilOp::eKeep : return "Keep";
7999       case StencilOp::eZero : return "Zero";
8000       case StencilOp::eReplace : return "Replace";
8001       case StencilOp::eIncrementAndClamp : return "IncrementAndClamp";
8002       case StencilOp::eDecrementAndClamp : return "DecrementAndClamp";
8003       case StencilOp::eInvert : return "Invert";
8004       case StencilOp::eIncrementAndWrap : return "IncrementAndWrap";
8005       case StencilOp::eDecrementAndWrap : return "DecrementAndWrap";
8006       default: return "invalid";
8007     }
8008   }
8009 
8010   enum class StructureType
8011   {
8012     eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO,
8013     eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
8014     eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
8015     eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
8016     eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO,
8017     eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
8018     eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
8019     eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
8020     eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
8021     eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
8022     eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
8023     eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
8024     eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
8025     eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
8026     eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
8027     eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
8028     eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
8029     ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
8030     ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
8031     ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
8032     ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
8033     ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
8034     ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
8035     ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
8036     ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
8037     ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
8038     ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
8039     ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
8040     eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
8041     eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
8042     ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
8043     eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
8044     eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
8045     eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
8046     eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
8047     eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
8048     eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
8049     eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
8050     eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
8051     eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
8052     eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
8053     eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
8054     eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
8055     eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
8056     eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
8057     eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
8058     eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
8059     eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
8060     eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
8061     ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
8062     eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
8063     eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
8064     ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
8065     eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
8066     eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
8067     eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
8068     eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
8069     eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
8070     eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
8071     eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
8072     eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
8073     eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
8074     ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
8075     eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
8076     eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
8077     eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
8078     eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
8079     eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
8080     eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
8081     ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
8082     ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
8083     eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
8084     eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
8085     ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
8086     eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
8087     ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
8088     eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
8089     ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
8090     ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
8091     eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
8092     eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
8093     ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
8094     eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
8095     ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
8096     ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
8097     ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
8098     eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
8099     ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
8100     ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
8101     eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
8102     eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
8103     eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
8104     eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
8105     eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
8106     ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
8107     eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
8108     eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
8109     ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
8110     eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
8111     ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
8112     eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
8113     ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
8114     eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
8115     eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
8116     eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
8117     ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
8118     eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
8119     eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
8120     eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
8121     ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
8122     eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
8123     ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
8124     eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
8125     ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
8126     ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
8127     ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
8128     ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
8129     ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
8130     eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
8131     eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
8132     eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
8133     eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
8134     eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
8135     eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
8136     eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
8137     eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
8138     ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
8139     ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
8140     ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
8141     ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
8142     ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
8143     eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
8144     ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
8145     ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
8146     eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
8147     eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
8148     ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
8149     eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
8150     ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
8151     eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
8152     ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
8153     eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
8154     ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
8155     ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
8156     eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
8157     eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
8158     eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
8159     ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
8160     ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
8161     ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
8162     eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
8163     eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
8164     ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
8165     ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
8166     ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
8167     eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
8168     eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
8169     eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
8170     eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
8171     ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
8172     eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
8173     eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
8174     eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
8175     eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
8176     eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
8177     ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
8178     eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
8179     eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
8180     eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
8181     eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
8182     eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
8183     eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
8184     eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
8185     eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
8186     eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
8187     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
8188     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
8189     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
8190     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
8191     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
8192     eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
8193     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
8194     eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
8195     eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
8196     eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
8197     eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
8198     eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
8199     eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
8200     ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
8201     ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
8202     ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
8203     eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
8204     eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
8205     eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
8206     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
8207     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
8208     eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
8209     eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
8210     eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
8211     eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
8212     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
8213     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
8214     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
8215     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
8216     eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
8217     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
8218     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
8219     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
8220     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
8221     eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
8222     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
8223     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
8224     eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
8225     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
8226     eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
8227     eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
8228     eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
8229     eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
8230     eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
8231     eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
8232     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
8233     eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
8234     ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
8235     eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
8236     ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
8237     ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
8238     eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
8239     eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
8240     eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
8241     eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
8242     eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
8243     ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
8244     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
8245     ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
8246     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
8247     ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
8248     ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
8249     ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
8250     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
8251     ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
8252     eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
8253     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
8254     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
8255     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
8256     eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
8257     eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
8258     eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
8259     ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
8260     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
8261     eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
8262     ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
8263     eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
8264     ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
8265     ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
8266     ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
8267     eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
8268     eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
8269     eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
8270     eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
8271     eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
8272     eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
8273     eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
8274     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
8275     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
8276     eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
8277     eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
8278     eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
8279     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
8280     eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
8281     eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
8282     eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
8283     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
8284     eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
8285     eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
8286     eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
8287     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
8288     ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
8289     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
8290     eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
8291     eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
8292     eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
8293     ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
8294     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
8295     eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
8296     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
8297     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
8298     ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
8299     ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
8300     eBindAccelerationStructureMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
8301     eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
8302     eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
8303     eAccelerationStructureCreateGeometryTypeInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR,
8304     eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
8305     eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
8306     eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
8307     eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
8308     eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
8309     eAccelerationStructureMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR,
8310     eAccelerationStructureVersionKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR,
8311     eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
8312     eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
8313     eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
8314     ePhysicalDeviceRayTracingFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR,
8315     ePhysicalDeviceRayTracingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR,
8316     eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
8317     eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
8318     eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
8319     eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
8320     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
8321     ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
8322     ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
8323     eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
8324     eDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
8325     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
8326     eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
8327     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
8328     eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
8329     eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
8330     eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
8331     ePhysicalDevicePortabilitySubsetFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
8332     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
8333     ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
8334     ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
8335     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
8336     ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
8337     eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
8338     eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
8339     eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV,
8340     eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
8341     eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
8342     eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
8343     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
8344     eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
8345     eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
8346     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
8347     ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
8348     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
8349     eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
8350     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
8351     eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
8352     eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
8353     ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
8354     ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
8355     ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
8356     eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
8357     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
8358     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
8359     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
8360     ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
8361     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
8362     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
8363     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
8364     ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
8365     ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
8366     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
8367     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
8368     ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
8369     ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
8370     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
8371     eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
8372     eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
8373     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
8374     eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
8375     eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
8376     ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
8377     ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
8378     ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
8379     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
8380     ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
8381     eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
8382     eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
8383     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
8384     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
8385     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
8386     ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
8387     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
8388     ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
8389     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
8390     ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
8391     ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
8392     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
8393     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
8394     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
8395     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
8396     eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
8397     eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
8398     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
8399     ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
8400     eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
8401     ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
8402     eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
8403     ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
8404     eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
8405     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
8406     ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
8407     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
8408     eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
8409     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
8410     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
8411     eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
8412     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
8413     eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
8414     eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
8415     ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
8416     ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
8417     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
8418     ePhysicalDeviceShaderAtomicFloatFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
8419     ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
8420     ePhysicalDeviceExtendedDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
8421     eDeferredOperationInfoKHR = VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,
8422     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
8423     ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
8424     ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
8425     ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
8426     ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
8427     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
8428     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
8429     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
8430     eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
8431     eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
8432     eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
8433     eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
8434     eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
8435     eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
8436     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
8437     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
8438     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
8439     eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
8440     eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
8441     ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
8442     eDeviceDeviceMemoryReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
8443     eDeviceMemoryReportCallbackDataEXT = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
8444     ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
8445     ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
8446     eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
8447     ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
8448     ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
8449     ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
8450     ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
8451     eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
8452     ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
8453     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
8454     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
8455     eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
8456     ePhysicalDeviceFragmentDensityMap2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
8457     ePhysicalDeviceFragmentDensityMap2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
8458     ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
8459     eCopyBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
8460     eCopyImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
8461     eCopyBufferToImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
8462     eCopyImageToBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
8463     eBlitImageInfo2KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
8464     eResolveImageInfo2KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
8465     eBufferCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
8466     eImageCopy2KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
8467     eImageBlit2KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
8468     eBufferImageCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
8469     eImageResolve2KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
8470     ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
8471     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
8472     eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
8473     eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
8474     eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
8475     eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
8476     eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
8477     eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
8478     eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
8479     eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
8480     eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
8481     eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
8482     eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
8483     eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
8484     eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
8485     eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
8486     eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
8487     eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
8488     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
8489     eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
8490     eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
8491     eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
8492     eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
8493     eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
8494     eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
8495     eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
8496     eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
8497     eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
8498     eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
8499     eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
8500     eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
8501     eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
8502     eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
8503     eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
8504     eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
8505     eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
8506     eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
8507     eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
8508     eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
8509     eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
8510     eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
8511     eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8512     eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8513     eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
8514     eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8515     eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
8516     eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
8517     eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
8518     eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
8519     eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
8520     eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
8521     eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
8522     ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
8523     ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
8524     ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
8525     ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
8526     ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
8527     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
8528     ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
8529     ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
8530     ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
8531     ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
8532     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
8533     ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
8534     ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
8535     ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
8536     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
8537     ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
8538     ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
8539     ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
8540     ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
8541     ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
8542     ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
8543     ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
8544     ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
8545     ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
8546     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
8547     ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
8548     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
8549     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
8550     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
8551     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
8552     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
8553     ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
8554     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
8555     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
8556     ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
8557     ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
8558     ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
8559     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
8560     ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
8561     ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
8562     ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
8563     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
8564     ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
8565     eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
8566     eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
8567     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
8568     eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
8569     eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
8570     eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
8571     eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
8572     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
8573     eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
8574     eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
8575     eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
8576     eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
8577     eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
8578     eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8579     eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
8580     eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
8581     eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
8582     eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
8583     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
8584     eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
8585     eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
8586     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
8587   };
8588 
to_string(StructureType value)8589   VULKAN_HPP_INLINE std::string to_string( StructureType value )
8590   {
8591     switch ( value )
8592     {
8593       case StructureType::eApplicationInfo : return "ApplicationInfo";
8594       case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo";
8595       case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo";
8596       case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo";
8597       case StructureType::eSubmitInfo : return "SubmitInfo";
8598       case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo";
8599       case StructureType::eMappedMemoryRange : return "MappedMemoryRange";
8600       case StructureType::eBindSparseInfo : return "BindSparseInfo";
8601       case StructureType::eFenceCreateInfo : return "FenceCreateInfo";
8602       case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo";
8603       case StructureType::eEventCreateInfo : return "EventCreateInfo";
8604       case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo";
8605       case StructureType::eBufferCreateInfo : return "BufferCreateInfo";
8606       case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo";
8607       case StructureType::eImageCreateInfo : return "ImageCreateInfo";
8608       case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo";
8609       case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo";
8610       case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo";
8611       case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo";
8612       case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo";
8613       case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo";
8614       case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo";
8615       case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo";
8616       case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo";
8617       case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo";
8618       case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo";
8619       case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo";
8620       case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo";
8621       case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo";
8622       case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo";
8623       case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo";
8624       case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo";
8625       case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo";
8626       case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo";
8627       case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo";
8628       case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet";
8629       case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet";
8630       case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo";
8631       case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo";
8632       case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo";
8633       case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo";
8634       case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo";
8635       case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo";
8636       case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo";
8637       case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier";
8638       case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier";
8639       case StructureType::eMemoryBarrier : return "MemoryBarrier";
8640       case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo";
8641       case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo";
8642       case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties";
8643       case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo";
8644       case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo";
8645       case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures";
8646       case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements";
8647       case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo";
8648       case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo";
8649       case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo";
8650       case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo";
8651       case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo";
8652       case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo";
8653       case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo";
8654       case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo";
8655       case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties";
8656       case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo";
8657       case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2";
8658       case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2";
8659       case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2";
8660       case StructureType::eMemoryRequirements2 : return "MemoryRequirements2";
8661       case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2";
8662       case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2";
8663       case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2";
8664       case StructureType::eFormatProperties2 : return "FormatProperties2";
8665       case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2";
8666       case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2";
8667       case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2";
8668       case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2";
8669       case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2";
8670       case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2";
8671       case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties";
8672       case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo";
8673       case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo";
8674       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo";
8675       case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo";
8676       case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures";
8677       case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties";
8678       case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures";
8679       case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo";
8680       case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures";
8681       case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties";
8682       case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2";
8683       case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo";
8684       case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo";
8685       case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo";
8686       case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo";
8687       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures";
8688       case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties";
8689       case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo";
8690       case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo";
8691       case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties";
8692       case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo";
8693       case StructureType::eExternalBufferProperties : return "ExternalBufferProperties";
8694       case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties";
8695       case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo";
8696       case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo";
8697       case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo";
8698       case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo";
8699       case StructureType::eExternalFenceProperties : return "ExternalFenceProperties";
8700       case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo";
8701       case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo";
8702       case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo";
8703       case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties";
8704       case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties";
8705       case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport";
8706       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures";
8707       case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features";
8708       case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties";
8709       case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features";
8710       case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties";
8711       case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo";
8712       case StructureType::eAttachmentDescription2 : return "AttachmentDescription2";
8713       case StructureType::eAttachmentReference2 : return "AttachmentReference2";
8714       case StructureType::eSubpassDescription2 : return "SubpassDescription2";
8715       case StructureType::eSubpassDependency2 : return "SubpassDependency2";
8716       case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2";
8717       case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo";
8718       case StructureType::eSubpassEndInfo : return "SubpassEndInfo";
8719       case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures";
8720       case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties";
8721       case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features";
8722       case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features";
8723       case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties";
8724       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo";
8725       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures";
8726       case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties";
8727       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo";
8728       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport";
8729       case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties";
8730       case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve";
8731       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures";
8732       case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo";
8733       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties";
8734       case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo";
8735       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures";
8736       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures";
8737       case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo";
8738       case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo";
8739       case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo";
8740       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
8741       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
8742       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
8743       case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout";
8744       case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout";
8745       case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures";
8746       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures";
8747       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties";
8748       case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo";
8749       case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo";
8750       case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo";
8751       case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo";
8752       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures";
8753       case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo";
8754       case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo";
8755       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo";
8756       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo";
8757       case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR";
8758       case StructureType::ePresentInfoKHR : return "PresentInfoKHR";
8759       case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR";
8760       case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR";
8761       case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR";
8762       case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR";
8763       case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR";
8764       case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR";
8765       case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR";
8766       case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR";
8767       case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR";
8768       case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR";
8769       case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR";
8770       case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR";
8771       case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR";
8772       case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR";
8773       case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT";
8774       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD";
8775       case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT";
8776       case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT";
8777       case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT";
8778       case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV";
8779       case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV";
8780       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV";
8781       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT";
8782       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT";
8783       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT";
8784       case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX";
8785       case StructureType::eImageViewAddressPropertiesNVX : return "ImageViewAddressPropertiesNVX";
8786       case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD";
8787       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP";
8788       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV";
8789       case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV";
8790       case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV";
8791       case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV";
8792       case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV";
8793       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV";
8794       case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT";
8795       case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN";
8796       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
8797       case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT";
8798       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT";
8799       case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR";
8800       case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR";
8801       case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR";
8802       case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR";
8803       case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR";
8804       case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR";
8805       case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR";
8806       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR";
8807       case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR";
8808       case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR";
8809       case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR";
8810       case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR";
8811       case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR";
8812       case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR";
8813       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR";
8814       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT";
8815       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT";
8816       case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT";
8817       case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR";
8818       case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV";
8819       case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT";
8820       case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT";
8821       case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT";
8822       case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT";
8823       case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT";
8824       case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE";
8825       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
8826       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV";
8827       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT";
8828       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT";
8829       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
8830       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT";
8831       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT";
8832       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT";
8833       case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT";
8834       case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR";
8835       case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR";
8836       case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR";
8837       case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR";
8838       case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR";
8839       case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR";
8840       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR";
8841       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR";
8842       case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR";
8843       case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR";
8844       case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR";
8845       case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR";
8846       case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR";
8847       case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR";
8848       case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR";
8849       case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR";
8850       case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR";
8851       case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR";
8852       case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR";
8853       case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR";
8854       case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR";
8855       case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK";
8856       case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK";
8857       case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT";
8858       case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT";
8859       case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT";
8860       case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT";
8861       case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT";
8862       case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID";
8863       case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID";
8864       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID";
8865       case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID";
8866       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID";
8867       case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID";
8868       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
8869       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
8870       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT";
8871       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
8872       case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT";
8873       case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT";
8874       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT";
8875       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT";
8876       case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT";
8877       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
8878       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
8879       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT";
8880       case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV";
8881       case StructureType::eBindAccelerationStructureMemoryInfoKHR : return "BindAccelerationStructureMemoryInfoKHR";
8882       case StructureType::eWriteDescriptorSetAccelerationStructureKHR : return "WriteDescriptorSetAccelerationStructureKHR";
8883       case StructureType::eAccelerationStructureBuildGeometryInfoKHR : return "AccelerationStructureBuildGeometryInfoKHR";
8884       case StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR : return "AccelerationStructureCreateGeometryTypeInfoKHR";
8885       case StructureType::eAccelerationStructureDeviceAddressInfoKHR : return "AccelerationStructureDeviceAddressInfoKHR";
8886       case StructureType::eAccelerationStructureGeometryAabbsDataKHR : return "AccelerationStructureGeometryAabbsDataKHR";
8887       case StructureType::eAccelerationStructureGeometryInstancesDataKHR : return "AccelerationStructureGeometryInstancesDataKHR";
8888       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR : return "AccelerationStructureGeometryTrianglesDataKHR";
8889       case StructureType::eAccelerationStructureGeometryKHR : return "AccelerationStructureGeometryKHR";
8890       case StructureType::eAccelerationStructureMemoryRequirementsInfoKHR : return "AccelerationStructureMemoryRequirementsInfoKHR";
8891       case StructureType::eAccelerationStructureVersionKHR : return "AccelerationStructureVersionKHR";
8892       case StructureType::eCopyAccelerationStructureInfoKHR : return "CopyAccelerationStructureInfoKHR";
8893       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR : return "CopyAccelerationStructureToMemoryInfoKHR";
8894       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR : return "CopyMemoryToAccelerationStructureInfoKHR";
8895       case StructureType::ePhysicalDeviceRayTracingFeaturesKHR : return "PhysicalDeviceRayTracingFeaturesKHR";
8896       case StructureType::ePhysicalDeviceRayTracingPropertiesKHR : return "PhysicalDeviceRayTracingPropertiesKHR";
8897       case StructureType::eRayTracingPipelineCreateInfoKHR : return "RayTracingPipelineCreateInfoKHR";
8898       case StructureType::eRayTracingShaderGroupCreateInfoKHR : return "RayTracingShaderGroupCreateInfoKHR";
8899       case StructureType::eAccelerationStructureCreateInfoKHR : return "AccelerationStructureCreateInfoKHR";
8900       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR : return "RayTracingPipelineInterfaceCreateInfoKHR";
8901       case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV";
8902       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
8903       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
8904       case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT";
8905       case StructureType::eDrmFormatModifierPropertiesEXT : return "DrmFormatModifierPropertiesEXT";
8906       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
8907       case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT";
8908       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT";
8909       case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT";
8910       case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT";
8911       case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT";
8912       case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR : return "PhysicalDevicePortabilitySubsetFeaturesKHR";
8913       case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR : return "PhysicalDevicePortabilitySubsetPropertiesKHR";
8914       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV";
8915       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV";
8916       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV";
8917       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
8918       case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV";
8919       case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV";
8920       case StructureType::eGeometryNV : return "GeometryNV";
8921       case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV";
8922       case StructureType::eGeometryAabbNV : return "GeometryAabbNV";
8923       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV";
8924       case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV";
8925       case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV";
8926       case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV";
8927       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
8928       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
8929       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT";
8930       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT";
8931       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT";
8932       case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT";
8933       case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT";
8934       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
8935       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR";
8936       case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD";
8937       case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT";
8938       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD";
8939       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD";
8940       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
8941       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT";
8942       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
8943       case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP";
8944       case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT";
8945       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
8946       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV";
8947       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV";
8948       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
8949       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV";
8950       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV";
8951       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV";
8952       case StructureType::eCheckpointDataNV : return "CheckpointDataNV";
8953       case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV";
8954       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
8955       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL : return "QueryPoolPerformanceQueryCreateInfoINTEL";
8956       case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL";
8957       case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL";
8958       case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL";
8959       case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL";
8960       case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL";
8961       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT";
8962       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD";
8963       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD";
8964       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA";
8965       case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT";
8966       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
8967       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
8968       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT";
8969       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
8970       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
8971       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
8972       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD";
8973       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD";
8974       case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT : return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
8975       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT";
8976       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT";
8977       case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT";
8978       case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR";
8979       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
8980       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
8981       case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT";
8982       case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT";
8983       case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT";
8984       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV";
8985       case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV";
8986       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV";
8987       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV";
8988       case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV";
8989       case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV";
8990       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
8991       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
8992       case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT";
8993       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT";
8994       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT";
8995       case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT";
8996       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT";
8997       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT";
8998       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT";
8999       case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT : return "PhysicalDeviceShaderAtomicFloatFeaturesEXT";
9000       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
9001       case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT : return "PhysicalDeviceExtendedDynamicStateFeaturesEXT";
9002       case StructureType::eDeferredOperationInfoKHR : return "DeferredOperationInfoKHR";
9003       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
9004       case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR";
9005       case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR";
9006       case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR";
9007       case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR";
9008       case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR";
9009       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
9010       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV : return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
9011       case StructureType::eGraphicsShaderGroupCreateInfoNV : return "GraphicsShaderGroupCreateInfoNV";
9012       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV : return "GraphicsPipelineShaderGroupsCreateInfoNV";
9013       case StructureType::eIndirectCommandsLayoutTokenNV : return "IndirectCommandsLayoutTokenNV";
9014       case StructureType::eIndirectCommandsLayoutCreateInfoNV : return "IndirectCommandsLayoutCreateInfoNV";
9015       case StructureType::eGeneratedCommandsInfoNV : return "GeneratedCommandsInfoNV";
9016       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV : return "GeneratedCommandsMemoryRequirementsInfoNV";
9017       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
9018       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
9019       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
9020       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM : return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
9021       case StructureType::eRenderPassTransformBeginInfoQCOM : return "RenderPassTransformBeginInfoQCOM";
9022       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT : return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
9023       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT : return "DeviceDeviceMemoryReportCreateInfoEXT";
9024       case StructureType::eDeviceMemoryReportCallbackDataEXT : return "DeviceMemoryReportCallbackDataEXT";
9025       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT : return "PhysicalDeviceRobustness2FeaturesEXT";
9026       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT : return "PhysicalDeviceRobustness2PropertiesEXT";
9027       case StructureType::eSamplerCustomBorderColorCreateInfoEXT : return "SamplerCustomBorderColorCreateInfoEXT";
9028       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT : return "PhysicalDeviceCustomBorderColorPropertiesEXT";
9029       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT : return "PhysicalDeviceCustomBorderColorFeaturesEXT";
9030       case StructureType::ePipelineLibraryCreateInfoKHR : return "PipelineLibraryCreateInfoKHR";
9031       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT : return "PhysicalDevicePrivateDataFeaturesEXT";
9032       case StructureType::eDevicePrivateDataCreateInfoEXT : return "DevicePrivateDataCreateInfoEXT";
9033       case StructureType::ePrivateDataSlotCreateInfoEXT : return "PrivateDataSlotCreateInfoEXT";
9034       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT : return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
9035       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV : return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
9036       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV : return "DeviceDiagnosticsConfigCreateInfoNV";
9037       case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT : return "PhysicalDeviceFragmentDensityMap2FeaturesEXT";
9038       case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT : return "PhysicalDeviceFragmentDensityMap2PropertiesEXT";
9039       case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT : return "PhysicalDeviceImageRobustnessFeaturesEXT";
9040       case StructureType::eCopyBufferInfo2KHR : return "CopyBufferInfo2KHR";
9041       case StructureType::eCopyImageInfo2KHR : return "CopyImageInfo2KHR";
9042       case StructureType::eCopyBufferToImageInfo2KHR : return "CopyBufferToImageInfo2KHR";
9043       case StructureType::eCopyImageToBufferInfo2KHR : return "CopyImageToBufferInfo2KHR";
9044       case StructureType::eBlitImageInfo2KHR : return "BlitImageInfo2KHR";
9045       case StructureType::eResolveImageInfo2KHR : return "ResolveImageInfo2KHR";
9046       case StructureType::eBufferCopy2KHR : return "BufferCopy2KHR";
9047       case StructureType::eImageCopy2KHR : return "ImageCopy2KHR";
9048       case StructureType::eImageBlit2KHR : return "ImageBlit2KHR";
9049       case StructureType::eBufferImageCopy2KHR : return "BufferImageCopy2KHR";
9050       case StructureType::eImageResolve2KHR : return "ImageResolve2KHR";
9051       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT : return "PhysicalDevice4444FormatsFeaturesEXT";
9052       case StructureType::eDirectfbSurfaceCreateInfoEXT : return "DirectfbSurfaceCreateInfoEXT";
9053       default: return "invalid";
9054     }
9055   }
9056 
9057   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
9058   {
9059     eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT,
9060     eVote = VK_SUBGROUP_FEATURE_VOTE_BIT,
9061     eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
9062     eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT,
9063     eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
9064     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
9065     eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
9066     eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT,
9067     ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
9068   };
9069 
to_string(SubgroupFeatureFlagBits value)9070   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
9071   {
9072     switch ( value )
9073     {
9074       case SubgroupFeatureFlagBits::eBasic : return "Basic";
9075       case SubgroupFeatureFlagBits::eVote : return "Vote";
9076       case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic";
9077       case SubgroupFeatureFlagBits::eBallot : return "Ballot";
9078       case SubgroupFeatureFlagBits::eShuffle : return "Shuffle";
9079       case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative";
9080       case SubgroupFeatureFlagBits::eClustered : return "Clustered";
9081       case SubgroupFeatureFlagBits::eQuad : return "Quad";
9082       case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV";
9083       default: return "invalid";
9084     }
9085   }
9086 
9087   enum class SubpassContents
9088   {
9089     eInline = VK_SUBPASS_CONTENTS_INLINE,
9090     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
9091   };
9092 
to_string(SubpassContents value)9093   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
9094   {
9095     switch ( value )
9096     {
9097       case SubpassContents::eInline : return "Inline";
9098       case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers";
9099       default: return "invalid";
9100     }
9101   }
9102 
9103   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
9104   {
9105     ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
9106     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
9107     eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
9108     eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
9109   };
9110 
to_string(SubpassDescriptionFlagBits value)9111   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
9112   {
9113     switch ( value )
9114     {
9115       case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX";
9116       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX";
9117       case SubpassDescriptionFlagBits::eFragmentRegionQCOM : return "FragmentRegionQCOM";
9118       case SubpassDescriptionFlagBits::eShaderResolveQCOM : return "ShaderResolveQCOM";
9119       default: return "invalid";
9120     }
9121   }
9122 
9123   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
9124   {
9125     eVblank = VK_SURFACE_COUNTER_VBLANK_EXT
9126   };
9127 
to_string(SurfaceCounterFlagBitsEXT value)9128   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
9129   {
9130     switch ( value )
9131     {
9132       case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank";
9133       default: return "invalid";
9134     }
9135   }
9136 
9137   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
9138   {
9139     eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
9140     eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
9141     eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
9142     eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
9143     eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
9144     eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
9145     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
9146     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
9147     eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
9148   };
9149 
to_string(SurfaceTransformFlagBitsKHR value)9150   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
9151   {
9152     switch ( value )
9153     {
9154       case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity";
9155       case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90";
9156       case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180";
9157       case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270";
9158       case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror";
9159       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90";
9160       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180";
9161       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270";
9162       case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit";
9163       default: return "invalid";
9164     }
9165   }
9166 
9167   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
9168   {
9169     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
9170     eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
9171     eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
9172   };
9173 
to_string(SwapchainCreateFlagBitsKHR value)9174   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
9175   {
9176     switch ( value )
9177     {
9178       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
9179       case SwapchainCreateFlagBitsKHR::eProtected : return "Protected";
9180       case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat";
9181       default: return "invalid";
9182     }
9183   }
9184 
9185   enum class SystemAllocationScope
9186   {
9187     eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
9188     eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
9189     eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
9190     eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
9191     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
9192   };
9193 
to_string(SystemAllocationScope value)9194   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
9195   {
9196     switch ( value )
9197     {
9198       case SystemAllocationScope::eCommand : return "Command";
9199       case SystemAllocationScope::eObject : return "Object";
9200       case SystemAllocationScope::eCache : return "Cache";
9201       case SystemAllocationScope::eDevice : return "Device";
9202       case SystemAllocationScope::eInstance : return "Instance";
9203       default: return "invalid";
9204     }
9205   }
9206 
9207   enum class TessellationDomainOrigin
9208   {
9209     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
9210     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
9211   };
9212   using TessellationDomainOriginKHR = TessellationDomainOrigin;
9213 
to_string(TessellationDomainOrigin value)9214   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
9215   {
9216     switch ( value )
9217     {
9218       case TessellationDomainOrigin::eUpperLeft : return "UpperLeft";
9219       case TessellationDomainOrigin::eLowerLeft : return "LowerLeft";
9220       default: return "invalid";
9221     }
9222   }
9223 
9224   enum class TimeDomainEXT
9225   {
9226     eDevice = VK_TIME_DOMAIN_DEVICE_EXT,
9227     eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
9228     eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
9229     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
9230   };
9231 
to_string(TimeDomainEXT value)9232   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
9233   {
9234     switch ( value )
9235     {
9236       case TimeDomainEXT::eDevice : return "Device";
9237       case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic";
9238       case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw";
9239       case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter";
9240       default: return "invalid";
9241     }
9242   }
9243 
9244   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
9245   {
9246     eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
9247     eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
9248     eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT,
9249     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
9250     eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
9251     eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
9252     eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
9253   };
9254 
to_string(ToolPurposeFlagBitsEXT value)9255   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
9256   {
9257     switch ( value )
9258     {
9259       case ToolPurposeFlagBitsEXT::eValidation : return "Validation";
9260       case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling";
9261       case ToolPurposeFlagBitsEXT::eTracing : return "Tracing";
9262       case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures";
9263       case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures";
9264       case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting";
9265       case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers";
9266       default: return "invalid";
9267     }
9268   }
9269 
9270   enum class ValidationCacheHeaderVersionEXT
9271   {
9272     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
9273   };
9274 
to_string(ValidationCacheHeaderVersionEXT value)9275   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
9276   {
9277     switch ( value )
9278     {
9279       case ValidationCacheHeaderVersionEXT::eOne : return "One";
9280       default: return "invalid";
9281     }
9282   }
9283 
9284   enum class ValidationCheckEXT
9285   {
9286     eAll = VK_VALIDATION_CHECK_ALL_EXT,
9287     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
9288   };
9289 
to_string(ValidationCheckEXT value)9290   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
9291   {
9292     switch ( value )
9293     {
9294       case ValidationCheckEXT::eAll : return "All";
9295       case ValidationCheckEXT::eShaders : return "Shaders";
9296       default: return "invalid";
9297     }
9298   }
9299 
9300   enum class ValidationFeatureDisableEXT
9301   {
9302     eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
9303     eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
9304     eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
9305     eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
9306     eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
9307     eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
9308     eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
9309   };
9310 
to_string(ValidationFeatureDisableEXT value)9311   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
9312   {
9313     switch ( value )
9314     {
9315       case ValidationFeatureDisableEXT::eAll : return "All";
9316       case ValidationFeatureDisableEXT::eShaders : return "Shaders";
9317       case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety";
9318       case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters";
9319       case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes";
9320       case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks";
9321       case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles";
9322       default: return "invalid";
9323     }
9324   }
9325 
9326   enum class ValidationFeatureEnableEXT
9327   {
9328     eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
9329     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
9330     eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
9331     eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
9332     eSynchronizationValidation = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
9333   };
9334 
to_string(ValidationFeatureEnableEXT value)9335   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
9336   {
9337     switch ( value )
9338     {
9339       case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted";
9340       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot";
9341       case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices";
9342       case ValidationFeatureEnableEXT::eDebugPrintf : return "DebugPrintf";
9343       case ValidationFeatureEnableEXT::eSynchronizationValidation : return "SynchronizationValidation";
9344       default: return "invalid";
9345     }
9346   }
9347 
9348   enum class VendorId
9349   {
9350     eVIV = VK_VENDOR_ID_VIV,
9351     eVSI = VK_VENDOR_ID_VSI,
9352     eKazan = VK_VENDOR_ID_KAZAN,
9353     eCodeplay = VK_VENDOR_ID_CODEPLAY,
9354     eMESA = VK_VENDOR_ID_MESA
9355   };
9356 
to_string(VendorId value)9357   VULKAN_HPP_INLINE std::string to_string( VendorId value )
9358   {
9359     switch ( value )
9360     {
9361       case VendorId::eVIV : return "VIV";
9362       case VendorId::eVSI : return "VSI";
9363       case VendorId::eKazan : return "Kazan";
9364       case VendorId::eCodeplay : return "Codeplay";
9365       case VendorId::eMESA : return "MESA";
9366       default: return "invalid";
9367     }
9368   }
9369 
9370   enum class VertexInputRate
9371   {
9372     eVertex = VK_VERTEX_INPUT_RATE_VERTEX,
9373     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
9374   };
9375 
to_string(VertexInputRate value)9376   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
9377   {
9378     switch ( value )
9379     {
9380       case VertexInputRate::eVertex : return "Vertex";
9381       case VertexInputRate::eInstance : return "Instance";
9382       default: return "invalid";
9383     }
9384   }
9385 
9386   enum class ViewportCoordinateSwizzleNV
9387   {
9388     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
9389     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
9390     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
9391     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
9392     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
9393     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
9394     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
9395     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
9396   };
9397 
to_string(ViewportCoordinateSwizzleNV value)9398   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
9399   {
9400     switch ( value )
9401     {
9402       case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX";
9403       case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX";
9404       case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY";
9405       case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY";
9406       case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ";
9407       case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ";
9408       case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW";
9409       case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW";
9410       default: return "invalid";
9411     }
9412   }
9413 
9414   template<typename T>
9415   struct IndexTypeValue
9416   {};
9417 
9418   template <>
9419   struct IndexTypeValue<uint16_t>
9420   {
9421     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
9422   };
9423 
9424   template <>
9425   struct CppType<IndexType, IndexType::eUint16>
9426   {
9427     using Type = uint16_t;
9428   };
9429 
9430   template <>
9431   struct IndexTypeValue<uint32_t>
9432   {
9433     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
9434   };
9435 
9436   template <>
9437   struct CppType<IndexType, IndexType::eUint32>
9438   {
9439     using Type = uint32_t;
9440   };
9441 
9442   template <>
9443   struct IndexTypeValue<uint8_t>
9444   {
9445     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
9446   };
9447 
9448   template <>
9449   struct CppType<IndexType, IndexType::eUint8EXT>
9450   {
9451     using Type = uint8_t;
9452   };
9453 
9454 
9455   using AccessFlags = Flags<AccessFlagBits>;
9456 
9457   template <> struct FlagTraits<AccessFlagBits>
9458   {
9459     enum : VkFlags
9460     {
9461       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)
9462     };
9463   };
9464 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)9465   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9466   {
9467     return AccessFlags( bit0 ) | bit1;
9468   }
9469 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)9470   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9471   {
9472     return AccessFlags( bit0 ) & bit1;
9473   }
9474 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)9475   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9476   {
9477     return AccessFlags( bit0 ) ^ bit1;
9478   }
9479 
operator ~(AccessFlagBits bits)9480   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
9481   {
9482     return ~( AccessFlags( bits ) );
9483   }
9484 
to_string(AccessFlags value)9485   VULKAN_HPP_INLINE std::string to_string( AccessFlags value  )
9486   {
9487 
9488     if ( !value ) return "{}";
9489     std::string result;
9490 
9491     if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | ";
9492     if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | ";
9493     if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | ";
9494     if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | ";
9495     if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | ";
9496     if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | ";
9497     if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | ";
9498     if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | ";
9499     if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | ";
9500     if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | ";
9501     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | ";
9502     if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | ";
9503     if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | ";
9504     if ( value & AccessFlagBits::eHostRead ) result += "HostRead | ";
9505     if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | ";
9506     if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | ";
9507     if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | ";
9508     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | ";
9509     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | ";
9510     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | ";
9511     if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | ";
9512     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | ";
9513     if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) result += "AccelerationStructureReadKHR | ";
9514     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) result += "AccelerationStructureWriteKHR | ";
9515     if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | ";
9516     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | ";
9517     if ( value & AccessFlagBits::eCommandPreprocessReadNV ) result += "CommandPreprocessReadNV | ";
9518     if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) result += "CommandPreprocessWriteNV | ";
9519     return "{ " + result.substr(0, result.size() - 3) + " }";
9520   }
9521 
9522 
9523   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
9524 
to_string(AcquireProfilingLockFlagsKHR)9525   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR  )
9526   {
9527 
9528     return "{}";
9529   }
9530 
9531 #ifdef VK_USE_PLATFORM_ANDROID_KHR
9532   enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags
9533   {};
9534 
to_string(AndroidSurfaceCreateFlagBitsKHR)9535   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
9536   {
9537     return "(void)";
9538   }
9539 
9540   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
9541 
to_string(AndroidSurfaceCreateFlagsKHR)9542   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR  )
9543   {
9544 
9545     return "{}";
9546   }
9547 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
9548 
9549 
9550   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
9551 
9552   template <> struct FlagTraits<AttachmentDescriptionFlagBits>
9553   {
9554     enum : VkFlags
9555     {
9556       allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias)
9557     };
9558   };
9559 
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9560   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9561   {
9562     return AttachmentDescriptionFlags( bit0 ) | bit1;
9563   }
9564 
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9565   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9566   {
9567     return AttachmentDescriptionFlags( bit0 ) & bit1;
9568   }
9569 
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9570   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9571   {
9572     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
9573   }
9574 
operator ~(AttachmentDescriptionFlagBits bits)9575   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
9576   {
9577     return ~( AttachmentDescriptionFlags( bits ) );
9578   }
9579 
to_string(AttachmentDescriptionFlags value)9580   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value  )
9581   {
9582 
9583     if ( !value ) return "{}";
9584     std::string result;
9585 
9586     if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | ";
9587     return "{ " + result.substr(0, result.size() - 3) + " }";
9588   }
9589 
9590 
9591   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
9592 
9593   template <> struct FlagTraits<BufferCreateFlagBits>
9594   {
9595     enum : VkFlags
9596     {
9597       allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplay)
9598     };
9599   };
9600 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9601   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9602   {
9603     return BufferCreateFlags( bit0 ) | bit1;
9604   }
9605 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9606   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9607   {
9608     return BufferCreateFlags( bit0 ) & bit1;
9609   }
9610 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9611   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9612   {
9613     return BufferCreateFlags( bit0 ) ^ bit1;
9614   }
9615 
operator ~(BufferCreateFlagBits bits)9616   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9617   {
9618     return ~( BufferCreateFlags( bits ) );
9619   }
9620 
to_string(BufferCreateFlags value)9621   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value  )
9622   {
9623 
9624     if ( !value ) return "{}";
9625     std::string result;
9626 
9627     if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
9628     if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
9629     if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
9630     if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
9631     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
9632     return "{ " + result.substr(0, result.size() - 3) + " }";
9633   }
9634 
9635 
9636   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
9637 
9638   template <> struct FlagTraits<BufferUsageFlagBits>
9639   {
9640     enum : VkFlags
9641     {
9642       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)
9643     };
9644   };
9645 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9646   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9647   {
9648     return BufferUsageFlags( bit0 ) | bit1;
9649   }
9650 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9651   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9652   {
9653     return BufferUsageFlags( bit0 ) & bit1;
9654   }
9655 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9656   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9657   {
9658     return BufferUsageFlags( bit0 ) ^ bit1;
9659   }
9660 
operator ~(BufferUsageFlagBits bits)9661   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9662   {
9663     return ~( BufferUsageFlags( bits ) );
9664   }
9665 
to_string(BufferUsageFlags value)9666   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value  )
9667   {
9668 
9669     if ( !value ) return "{}";
9670     std::string result;
9671 
9672     if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
9673     if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | ";
9674     if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
9675     if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
9676     if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | ";
9677     if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | ";
9678     if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | ";
9679     if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
9680     if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | ";
9681     if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | ";
9682     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | ";
9683     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | ";
9684     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
9685     if ( value & BufferUsageFlagBits::eRayTracingKHR ) result += "RayTracingKHR | ";
9686     return "{ " + result.substr(0, result.size() - 3) + " }";
9687   }
9688 
9689   enum class BufferViewCreateFlagBits : VkFlags
9690   {};
9691 
to_string(BufferViewCreateFlagBits)9692   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
9693   {
9694     return "(void)";
9695   }
9696 
9697   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
9698 
to_string(BufferViewCreateFlags)9699   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags  )
9700   {
9701 
9702     return "{}";
9703   }
9704 
9705 
9706   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
9707 
9708   template <> struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
9709   {
9710     enum : VkFlags
9711     {
9712       allFlags = VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eLowMemory)
9713     };
9714   };
9715 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9716   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9717   {
9718     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
9719   }
9720 
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9721   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9722   {
9723     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
9724   }
9725 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9726   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9727   {
9728     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
9729   }
9730 
operator ~(BuildAccelerationStructureFlagBitsKHR bits)9731   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
9732   {
9733     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
9734   }
9735 
9736   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
9737 
to_string(BuildAccelerationStructureFlagsKHR value)9738   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value  )
9739   {
9740 
9741     if ( !value ) return "{}";
9742     std::string result;
9743 
9744     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) result += "AllowUpdate | ";
9745     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) result += "AllowCompaction | ";
9746     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) result += "PreferFastTrace | ";
9747     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) result += "PreferFastBuild | ";
9748     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) result += "LowMemory | ";
9749     return "{ " + result.substr(0, result.size() - 3) + " }";
9750   }
9751 
9752 
9753   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
9754 
9755   template <> struct FlagTraits<ColorComponentFlagBits>
9756   {
9757     enum : VkFlags
9758     {
9759       allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA)
9760     };
9761   };
9762 
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9763   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9764   {
9765     return ColorComponentFlags( bit0 ) | bit1;
9766   }
9767 
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9768   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9769   {
9770     return ColorComponentFlags( bit0 ) & bit1;
9771   }
9772 
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9773   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9774   {
9775     return ColorComponentFlags( bit0 ) ^ bit1;
9776   }
9777 
operator ~(ColorComponentFlagBits bits)9778   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT
9779   {
9780     return ~( ColorComponentFlags( bits ) );
9781   }
9782 
to_string(ColorComponentFlags value)9783   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value  )
9784   {
9785 
9786     if ( !value ) return "{}";
9787     std::string result;
9788 
9789     if ( value & ColorComponentFlagBits::eR ) result += "R | ";
9790     if ( value & ColorComponentFlagBits::eG ) result += "G | ";
9791     if ( value & ColorComponentFlagBits::eB ) result += "B | ";
9792     if ( value & ColorComponentFlagBits::eA ) result += "A | ";
9793     return "{ " + result.substr(0, result.size() - 3) + " }";
9794   }
9795 
9796 
9797   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
9798 
9799   template <> struct FlagTraits<CommandBufferResetFlagBits>
9800   {
9801     enum : VkFlags
9802     {
9803       allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources)
9804     };
9805   };
9806 
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9807   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9808   {
9809     return CommandBufferResetFlags( bit0 ) | bit1;
9810   }
9811 
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9812   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9813   {
9814     return CommandBufferResetFlags( bit0 ) & bit1;
9815   }
9816 
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9817   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9818   {
9819     return CommandBufferResetFlags( bit0 ) ^ bit1;
9820   }
9821 
operator ~(CommandBufferResetFlagBits bits)9822   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
9823   {
9824     return ~( CommandBufferResetFlags( bits ) );
9825   }
9826 
to_string(CommandBufferResetFlags value)9827   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value  )
9828   {
9829 
9830     if ( !value ) return "{}";
9831     std::string result;
9832 
9833     if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
9834     return "{ " + result.substr(0, result.size() - 3) + " }";
9835   }
9836 
9837 
9838   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
9839 
9840   template <> struct FlagTraits<CommandBufferUsageFlagBits>
9841   {
9842     enum : VkFlags
9843     {
9844       allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse)
9845     };
9846   };
9847 
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9848   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9849   {
9850     return CommandBufferUsageFlags( bit0 ) | bit1;
9851   }
9852 
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9853   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9854   {
9855     return CommandBufferUsageFlags( bit0 ) & bit1;
9856   }
9857 
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9858   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9859   {
9860     return CommandBufferUsageFlags( bit0 ) ^ bit1;
9861   }
9862 
operator ~(CommandBufferUsageFlagBits bits)9863   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9864   {
9865     return ~( CommandBufferUsageFlags( bits ) );
9866   }
9867 
to_string(CommandBufferUsageFlags value)9868   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value  )
9869   {
9870 
9871     if ( !value ) return "{}";
9872     std::string result;
9873 
9874     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
9875     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
9876     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | ";
9877     return "{ " + result.substr(0, result.size() - 3) + " }";
9878   }
9879 
9880 
9881   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
9882 
9883   template <> struct FlagTraits<CommandPoolCreateFlagBits>
9884   {
9885     enum : VkFlags
9886     {
9887       allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected)
9888     };
9889   };
9890 
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9891   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9892   {
9893     return CommandPoolCreateFlags( bit0 ) | bit1;
9894   }
9895 
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9896   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9897   {
9898     return CommandPoolCreateFlags( bit0 ) & bit1;
9899   }
9900 
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)9901   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9902   {
9903     return CommandPoolCreateFlags( bit0 ) ^ bit1;
9904   }
9905 
operator ~(CommandPoolCreateFlagBits bits)9906   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9907   {
9908     return ~( CommandPoolCreateFlags( bits ) );
9909   }
9910 
to_string(CommandPoolCreateFlags value)9911   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value  )
9912   {
9913 
9914     if ( !value ) return "{}";
9915     std::string result;
9916 
9917     if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
9918     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
9919     if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | ";
9920     return "{ " + result.substr(0, result.size() - 3) + " }";
9921   }
9922 
9923 
9924   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
9925 
9926   template <> struct FlagTraits<CommandPoolResetFlagBits>
9927   {
9928     enum : VkFlags
9929     {
9930       allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources)
9931     };
9932   };
9933 
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)9934   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9935   {
9936     return CommandPoolResetFlags( bit0 ) | bit1;
9937   }
9938 
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)9939   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9940   {
9941     return CommandPoolResetFlags( bit0 ) & bit1;
9942   }
9943 
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)9944   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9945   {
9946     return CommandPoolResetFlags( bit0 ) ^ bit1;
9947   }
9948 
operator ~(CommandPoolResetFlagBits bits)9949   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
9950   {
9951     return ~( CommandPoolResetFlags( bits ) );
9952   }
9953 
to_string(CommandPoolResetFlags value)9954   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value  )
9955   {
9956 
9957     if ( !value ) return "{}";
9958     std::string result;
9959 
9960     if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
9961     return "{ " + result.substr(0, result.size() - 3) + " }";
9962   }
9963 
9964   enum class CommandPoolTrimFlagBits : VkFlags
9965   {};
9966 
to_string(CommandPoolTrimFlagBits)9967   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
9968   {
9969     return "(void)";
9970   }
9971 
9972   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
9973 
9974   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
9975 
to_string(CommandPoolTrimFlags)9976   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags  )
9977   {
9978 
9979     return "{}";
9980   }
9981 
9982 
9983   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
9984 
9985   template <> struct FlagTraits<CompositeAlphaFlagBitsKHR>
9986   {
9987     enum : VkFlags
9988     {
9989       allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit)
9990     };
9991   };
9992 
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)9993   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9994   {
9995     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
9996   }
9997 
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)9998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9999   {
10000     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
10001   }
10002 
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10004   {
10005     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
10006   }
10007 
operator ~(CompositeAlphaFlagBitsKHR bits)10008   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10009   {
10010     return ~( CompositeAlphaFlagsKHR( bits ) );
10011   }
10012 
to_string(CompositeAlphaFlagsKHR value)10013   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value  )
10014   {
10015 
10016     if ( !value ) return "{}";
10017     std::string result;
10018 
10019     if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10020     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
10021     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
10022     if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | ";
10023     return "{ " + result.substr(0, result.size() - 3) + " }";
10024   }
10025 
10026 
10027   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
10028 
10029   template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT>
10030   {
10031     enum : VkFlags
10032     {
10033       allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted)
10034     };
10035   };
10036 
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10037   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10038   {
10039     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
10040   }
10041 
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10042   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10043   {
10044     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
10045   }
10046 
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10047   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10048   {
10049     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
10050   }
10051 
operator ~(ConditionalRenderingFlagBitsEXT bits)10052   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10053   {
10054     return ~( ConditionalRenderingFlagsEXT( bits ) );
10055   }
10056 
to_string(ConditionalRenderingFlagsEXT value)10057   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value  )
10058   {
10059 
10060     if ( !value ) return "{}";
10061     std::string result;
10062 
10063     if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | ";
10064     return "{ " + result.substr(0, result.size() - 3) + " }";
10065   }
10066 
10067 
10068   using CullModeFlags = Flags<CullModeFlagBits>;
10069 
10070   template <> struct FlagTraits<CullModeFlagBits>
10071   {
10072     enum : VkFlags
10073     {
10074       allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack)
10075     };
10076   };
10077 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)10078   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10079   {
10080     return CullModeFlags( bit0 ) | bit1;
10081   }
10082 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)10083   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10084   {
10085     return CullModeFlags( bit0 ) & bit1;
10086   }
10087 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)10088   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10089   {
10090     return CullModeFlags( bit0 ) ^ bit1;
10091   }
10092 
operator ~(CullModeFlagBits bits)10093   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10094   {
10095     return ~( CullModeFlags( bits ) );
10096   }
10097 
to_string(CullModeFlags value)10098   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value  )
10099   {
10100 
10101     if ( !value ) return "{}";
10102     std::string result;
10103 
10104     if ( value & CullModeFlagBits::eFront ) result += "Front | ";
10105     if ( value & CullModeFlagBits::eBack ) result += "Back | ";
10106     return "{ " + result.substr(0, result.size() - 3) + " }";
10107   }
10108 
10109 
10110   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
10111 
10112   template <> struct FlagTraits<DebugReportFlagBitsEXT>
10113   {
10114     enum : VkFlags
10115     {
10116       allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug)
10117     };
10118   };
10119 
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10120   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10121   {
10122     return DebugReportFlagsEXT( bit0 ) | bit1;
10123   }
10124 
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10125   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10126   {
10127     return DebugReportFlagsEXT( bit0 ) & bit1;
10128   }
10129 
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10130   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10131   {
10132     return DebugReportFlagsEXT( bit0 ) ^ bit1;
10133   }
10134 
operator ~(DebugReportFlagBitsEXT bits)10135   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10136   {
10137     return ~( DebugReportFlagsEXT( bits ) );
10138   }
10139 
to_string(DebugReportFlagsEXT value)10140   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value  )
10141   {
10142 
10143     if ( !value ) return "{}";
10144     std::string result;
10145 
10146     if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | ";
10147     if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | ";
10148     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
10149     if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
10150     if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | ";
10151     return "{ " + result.substr(0, result.size() - 3) + " }";
10152   }
10153 
10154 
10155   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
10156 
10157   template <> struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
10158   {
10159     enum : VkFlags
10160     {
10161       allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError)
10162     };
10163   };
10164 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10165   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10166   {
10167     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
10168   }
10169 
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10170   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10171   {
10172     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
10173   }
10174 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10175   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10176   {
10177     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
10178   }
10179 
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)10180   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10181   {
10182     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
10183   }
10184 
to_string(DebugUtilsMessageSeverityFlagsEXT value)10185   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value  )
10186   {
10187 
10188     if ( !value ) return "{}";
10189     std::string result;
10190 
10191     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | ";
10192     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
10193     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
10194     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | ";
10195     return "{ " + result.substr(0, result.size() - 3) + " }";
10196   }
10197 
10198 
10199   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
10200 
10201   template <> struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
10202   {
10203     enum : VkFlags
10204     {
10205       allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance)
10206     };
10207   };
10208 
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10209   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10210   {
10211     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
10212   }
10213 
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10214   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10215   {
10216     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
10217   }
10218 
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10219   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10220   {
10221     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
10222   }
10223 
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)10224   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10225   {
10226     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
10227   }
10228 
to_string(DebugUtilsMessageTypeFlagsEXT value)10229   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value  )
10230   {
10231 
10232     if ( !value ) return "{}";
10233     std::string result;
10234 
10235     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
10236     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
10237     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | ";
10238     return "{ " + result.substr(0, result.size() - 3) + " }";
10239   }
10240 
10241   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags
10242   {};
10243 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)10244   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
10245   {
10246     return "(void)";
10247   }
10248 
10249   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
10250 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)10251   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT  )
10252   {
10253 
10254     return "{}";
10255   }
10256 
10257   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags
10258   {};
10259 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)10260   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
10261   {
10262     return "(void)";
10263   }
10264 
10265   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
10266 
to_string(DebugUtilsMessengerCreateFlagsEXT)10267   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT  )
10268   {
10269 
10270     return "{}";
10271   }
10272 
10273 
10274   using DependencyFlags = Flags<DependencyFlagBits>;
10275 
10276   template <> struct FlagTraits<DependencyFlagBits>
10277   {
10278     enum : VkFlags
10279     {
10280       allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal)
10281     };
10282   };
10283 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)10284   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10285   {
10286     return DependencyFlags( bit0 ) | bit1;
10287   }
10288 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)10289   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10290   {
10291     return DependencyFlags( bit0 ) & bit1;
10292   }
10293 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)10294   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10295   {
10296     return DependencyFlags( bit0 ) ^ bit1;
10297   }
10298 
operator ~(DependencyFlagBits bits)10299   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
10300   {
10301     return ~( DependencyFlags( bits ) );
10302   }
10303 
to_string(DependencyFlags value)10304   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value  )
10305   {
10306 
10307     if ( !value ) return "{}";
10308     std::string result;
10309 
10310     if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
10311     if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
10312     if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | ";
10313     return "{ " + result.substr(0, result.size() - 3) + " }";
10314   }
10315 
10316 
10317   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
10318 
10319   template <> struct FlagTraits<DescriptorBindingFlagBits>
10320   {
10321     enum : VkFlags
10322     {
10323       allFlags = VkFlags(DescriptorBindingFlagBits::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBits::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBits::ePartiallyBound) | VkFlags(DescriptorBindingFlagBits::eVariableDescriptorCount)
10324     };
10325   };
10326 
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10327   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10328   {
10329     return DescriptorBindingFlags( bit0 ) | bit1;
10330   }
10331 
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10332   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10333   {
10334     return DescriptorBindingFlags( bit0 ) & bit1;
10335   }
10336 
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10337   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10338   {
10339     return DescriptorBindingFlags( bit0 ) ^ bit1;
10340   }
10341 
operator ~(DescriptorBindingFlagBits bits)10342   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT
10343   {
10344     return ~( DescriptorBindingFlags( bits ) );
10345   }
10346 
10347   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
10348 
to_string(DescriptorBindingFlags value)10349   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value  )
10350   {
10351 
10352     if ( !value ) return "{}";
10353     std::string result;
10354 
10355     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
10356     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
10357     if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | ";
10358     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | ";
10359     return "{ " + result.substr(0, result.size() - 3) + " }";
10360   }
10361 
10362 
10363   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
10364 
10365   template <> struct FlagTraits<DescriptorPoolCreateFlagBits>
10366   {
10367     enum : VkFlags
10368     {
10369       allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBind)
10370     };
10371   };
10372 
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10373   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10374   {
10375     return DescriptorPoolCreateFlags( bit0 ) | bit1;
10376   }
10377 
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10378   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10379   {
10380     return DescriptorPoolCreateFlags( bit0 ) & bit1;
10381   }
10382 
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10383   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10384   {
10385     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
10386   }
10387 
operator ~(DescriptorPoolCreateFlagBits bits)10388   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10389   {
10390     return ~( DescriptorPoolCreateFlags( bits ) );
10391   }
10392 
to_string(DescriptorPoolCreateFlags value)10393   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value  )
10394   {
10395 
10396     if ( !value ) return "{}";
10397     std::string result;
10398 
10399     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
10400     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
10401     return "{ " + result.substr(0, result.size() - 3) + " }";
10402   }
10403 
10404   enum class DescriptorPoolResetFlagBits : VkFlags
10405   {};
10406 
to_string(DescriptorPoolResetFlagBits)10407   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
10408   {
10409     return "(void)";
10410   }
10411 
10412   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
10413 
to_string(DescriptorPoolResetFlags)10414   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags  )
10415   {
10416 
10417     return "{}";
10418   }
10419 
10420 
10421   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
10422 
10423   template <> struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
10424   {
10425     enum : VkFlags
10426     {
10427       allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool) | VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR)
10428     };
10429   };
10430 
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10431   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10432   {
10433     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
10434   }
10435 
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10436   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10437   {
10438     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
10439   }
10440 
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10441   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10442   {
10443     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
10444   }
10445 
operator ~(DescriptorSetLayoutCreateFlagBits bits)10446   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10447   {
10448     return ~( DescriptorSetLayoutCreateFlags( bits ) );
10449   }
10450 
to_string(DescriptorSetLayoutCreateFlags value)10451   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value  )
10452   {
10453 
10454     if ( !value ) return "{}";
10455     std::string result;
10456 
10457     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | ";
10458     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
10459     return "{ " + result.substr(0, result.size() - 3) + " }";
10460   }
10461 
10462   enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags
10463   {};
10464 
to_string(DescriptorUpdateTemplateCreateFlagBits)10465   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
10466   {
10467     return "(void)";
10468   }
10469 
10470   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
10471 
10472   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
10473 
to_string(DescriptorUpdateTemplateCreateFlags)10474   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags  )
10475   {
10476 
10477     return "{}";
10478   }
10479 
10480 
10481   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
10482 
to_string(DeviceCreateFlags)10483   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags  )
10484   {
10485 
10486     return "{}";
10487   }
10488 
10489 
10490   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
10491 
10492   template <> struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
10493   {
10494     enum : VkFlags
10495     {
10496       allFlags = VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints)
10497     };
10498   };
10499 
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10500   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10501   {
10502     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
10503   }
10504 
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10505   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10506   {
10507     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
10508   }
10509 
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10510   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10511   {
10512     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
10513   }
10514 
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)10515   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10516   {
10517     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
10518   }
10519 
to_string(DeviceDiagnosticsConfigFlagsNV value)10520   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value  )
10521   {
10522 
10523     if ( !value ) return "{}";
10524     std::string result;
10525 
10526     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) result += "EnableShaderDebugInfo | ";
10527     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) result += "EnableResourceTracking | ";
10528     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) result += "EnableAutomaticCheckpoints | ";
10529     return "{ " + result.substr(0, result.size() - 3) + " }";
10530   }
10531 
10532 
10533   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
10534 
10535   template <> struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
10536   {
10537     enum : VkFlags
10538     {
10539       allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice)
10540     };
10541   };
10542 
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10543   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10544   {
10545     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
10546   }
10547 
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10548   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10549   {
10550     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
10551   }
10552 
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10553   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10554   {
10555     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
10556   }
10557 
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)10558   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10559   {
10560     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
10561   }
10562 
to_string(DeviceGroupPresentModeFlagsKHR value)10563   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value  )
10564   {
10565 
10566     if ( !value ) return "{}";
10567     std::string result;
10568 
10569     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | ";
10570     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
10571     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
10572     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | ";
10573     return "{ " + result.substr(0, result.size() - 3) + " }";
10574   }
10575 
10576   enum class DeviceMemoryReportFlagBitsEXT : VkFlags
10577   {};
10578 
to_string(DeviceMemoryReportFlagBitsEXT)10579   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT )
10580   {
10581     return "(void)";
10582   }
10583 
10584   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
10585 
to_string(DeviceMemoryReportFlagsEXT)10586   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT  )
10587   {
10588 
10589     return "{}";
10590   }
10591 
10592 
10593   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
10594 
10595   template <> struct FlagTraits<DeviceQueueCreateFlagBits>
10596   {
10597     enum : VkFlags
10598     {
10599       allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected)
10600     };
10601   };
10602 
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10603   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10604   {
10605     return DeviceQueueCreateFlags( bit0 ) | bit1;
10606   }
10607 
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10608   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10609   {
10610     return DeviceQueueCreateFlags( bit0 ) & bit1;
10611   }
10612 
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10613   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10614   {
10615     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
10616   }
10617 
operator ~(DeviceQueueCreateFlagBits bits)10618   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10619   {
10620     return ~( DeviceQueueCreateFlags( bits ) );
10621   }
10622 
to_string(DeviceQueueCreateFlags value)10623   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value  )
10624   {
10625 
10626     if ( !value ) return "{}";
10627     std::string result;
10628 
10629     if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | ";
10630     return "{ " + result.substr(0, result.size() - 3) + " }";
10631   }
10632 
10633 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
10634   enum class DirectFBSurfaceCreateFlagBitsEXT : VkFlags
10635   {};
10636 
to_string(DirectFBSurfaceCreateFlagBitsEXT)10637   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT )
10638   {
10639     return "(void)";
10640   }
10641 
10642   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
10643 
to_string(DirectFBSurfaceCreateFlagsEXT)10644   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT  )
10645   {
10646 
10647     return "{}";
10648   }
10649 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
10650 
10651   enum class DisplayModeCreateFlagBitsKHR : VkFlags
10652   {};
10653 
to_string(DisplayModeCreateFlagBitsKHR)10654   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
10655   {
10656     return "(void)";
10657   }
10658 
10659   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
10660 
to_string(DisplayModeCreateFlagsKHR)10661   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR  )
10662   {
10663 
10664     return "{}";
10665   }
10666 
10667 
10668   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
10669 
10670   template <> struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
10671   {
10672     enum : VkFlags
10673     {
10674       allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied)
10675     };
10676   };
10677 
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10678   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10679   {
10680     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
10681   }
10682 
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10683   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10684   {
10685     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
10686   }
10687 
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10688   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10689   {
10690     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
10691   }
10692 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)10693   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10694   {
10695     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
10696   }
10697 
to_string(DisplayPlaneAlphaFlagsKHR value)10698   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value  )
10699   {
10700 
10701     if ( !value ) return "{}";
10702     std::string result;
10703 
10704     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10705     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
10706     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
10707     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | ";
10708     return "{ " + result.substr(0, result.size() - 3) + " }";
10709   }
10710 
10711   enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags
10712   {};
10713 
to_string(DisplaySurfaceCreateFlagBitsKHR)10714   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
10715   {
10716     return "(void)";
10717   }
10718 
10719   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
10720 
to_string(DisplaySurfaceCreateFlagsKHR)10721   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR  )
10722   {
10723 
10724     return "{}";
10725   }
10726 
10727   enum class EventCreateFlagBits : VkFlags
10728   {};
10729 
to_string(EventCreateFlagBits)10730   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits )
10731   {
10732     return "(void)";
10733   }
10734 
10735   using EventCreateFlags = Flags<EventCreateFlagBits>;
10736 
to_string(EventCreateFlags)10737   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags  )
10738   {
10739 
10740     return "{}";
10741   }
10742 
10743 
10744   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
10745 
10746   template <> struct FlagTraits<ExternalFenceFeatureFlagBits>
10747   {
10748     enum : VkFlags
10749     {
10750       allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable)
10751     };
10752   };
10753 
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10754   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10755   {
10756     return ExternalFenceFeatureFlags( bit0 ) | bit1;
10757   }
10758 
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10759   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10760   {
10761     return ExternalFenceFeatureFlags( bit0 ) & bit1;
10762   }
10763 
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10764   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10765   {
10766     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
10767   }
10768 
operator ~(ExternalFenceFeatureFlagBits bits)10769   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10770   {
10771     return ~( ExternalFenceFeatureFlags( bits ) );
10772   }
10773 
10774   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
10775 
to_string(ExternalFenceFeatureFlags value)10776   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value  )
10777   {
10778 
10779     if ( !value ) return "{}";
10780     std::string result;
10781 
10782     if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
10783     if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | ";
10784     return "{ " + result.substr(0, result.size() - 3) + " }";
10785   }
10786 
10787 
10788   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
10789 
10790   template <> struct FlagTraits<ExternalFenceHandleTypeFlagBits>
10791   {
10792     enum : VkFlags
10793     {
10794       allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd)
10795     };
10796   };
10797 
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10798   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10799   {
10800     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
10801   }
10802 
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10803   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10804   {
10805     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
10806   }
10807 
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10808   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10809   {
10810     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
10811   }
10812 
operator ~(ExternalFenceHandleTypeFlagBits bits)10813   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10814   {
10815     return ~( ExternalFenceHandleTypeFlags( bits ) );
10816   }
10817 
10818   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
10819 
to_string(ExternalFenceHandleTypeFlags value)10820   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value  )
10821   {
10822 
10823     if ( !value ) return "{}";
10824     std::string result;
10825 
10826     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
10827     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10828     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10829     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
10830     return "{ " + result.substr(0, result.size() - 3) + " }";
10831   }
10832 
10833 
10834   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
10835 
10836   template <> struct FlagTraits<ExternalMemoryFeatureFlagBits>
10837   {
10838     enum : VkFlags
10839     {
10840       allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable)
10841     };
10842   };
10843 
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10844   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10845   {
10846     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
10847   }
10848 
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10849   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10850   {
10851     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
10852   }
10853 
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10854   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10855   {
10856     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
10857   }
10858 
operator ~(ExternalMemoryFeatureFlagBits bits)10859   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10860   {
10861     return ~( ExternalMemoryFeatureFlags( bits ) );
10862   }
10863 
10864   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
10865 
to_string(ExternalMemoryFeatureFlags value)10866   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value  )
10867   {
10868 
10869     if ( !value ) return "{}";
10870     std::string result;
10871 
10872     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
10873     if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
10874     if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | ";
10875     return "{ " + result.substr(0, result.size() - 3) + " }";
10876   }
10877 
10878 
10879   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
10880 
10881   template <> struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
10882   {
10883     enum : VkFlags
10884     {
10885       allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable)
10886     };
10887   };
10888 
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10889   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10890   {
10891     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
10892   }
10893 
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10894   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10895   {
10896     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
10897   }
10898 
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)10899   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10900   {
10901     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
10902   }
10903 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)10904   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10905   {
10906     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
10907   }
10908 
to_string(ExternalMemoryFeatureFlagsNV value)10909   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value  )
10910   {
10911 
10912     if ( !value ) return "{}";
10913     std::string result;
10914 
10915     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
10916     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
10917     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | ";
10918     return "{ " + result.substr(0, result.size() - 3) + " }";
10919   }
10920 
10921 
10922   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
10923 
10924   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
10925   {
10926     enum : VkFlags
10927     {
10928       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)
10929     };
10930   };
10931 
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10932   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10933   {
10934     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
10935   }
10936 
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10937   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10938   {
10939     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
10940   }
10941 
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10942   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10943   {
10944     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
10945   }
10946 
operator ~(ExternalMemoryHandleTypeFlagBits bits)10947   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10948   {
10949     return ~( ExternalMemoryHandleTypeFlags( bits ) );
10950   }
10951 
10952   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
10953 
to_string(ExternalMemoryHandleTypeFlags value)10954   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value  )
10955   {
10956 
10957     if ( !value ) return "{}";
10958     std::string result;
10959 
10960     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
10961     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10962     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10963     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | ";
10964     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | ";
10965     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | ";
10966     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | ";
10967     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | ";
10968     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
10969     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
10970     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | ";
10971     return "{ " + result.substr(0, result.size() - 3) + " }";
10972   }
10973 
10974 
10975   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
10976 
10977   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
10978   {
10979     enum : VkFlags
10980     {
10981       allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt)
10982     };
10983   };
10984 
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)10985   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10986   {
10987     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
10988   }
10989 
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)10990   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10991   {
10992     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
10993   }
10994 
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)10995   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10996   {
10997     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
10998   }
10999 
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)11000   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11001   {
11002     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
11003   }
11004 
to_string(ExternalMemoryHandleTypeFlagsNV value)11005   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value  )
11006   {
11007 
11008     if ( !value ) return "{}";
11009     std::string result;
11010 
11011     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11012     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11013     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
11014     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | ";
11015     return "{ " + result.substr(0, result.size() - 3) + " }";
11016   }
11017 
11018 
11019   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
11020 
11021   template <> struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
11022   {
11023     enum : VkFlags
11024     {
11025       allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable)
11026     };
11027   };
11028 
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11029   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11030   {
11031     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
11032   }
11033 
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11034   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11035   {
11036     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
11037   }
11038 
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11039   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11040   {
11041     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
11042   }
11043 
operator ~(ExternalSemaphoreFeatureFlagBits bits)11044   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11045   {
11046     return ~( ExternalSemaphoreFeatureFlags( bits ) );
11047   }
11048 
11049   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
11050 
to_string(ExternalSemaphoreFeatureFlags value)11051   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value  )
11052   {
11053 
11054     if ( !value ) return "{}";
11055     std::string result;
11056 
11057     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
11058     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | ";
11059     return "{ " + result.substr(0, result.size() - 3) + " }";
11060   }
11061 
11062 
11063   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
11064 
11065   template <> struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
11066   {
11067     enum : VkFlags
11068     {
11069       allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd)
11070     };
11071   };
11072 
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11073   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11074   {
11075     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
11076   }
11077 
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11078   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11079   {
11080     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
11081   }
11082 
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11083   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11084   {
11085     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
11086   }
11087 
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)11088   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11089   {
11090     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
11091   }
11092 
11093   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
11094 
to_string(ExternalSemaphoreHandleTypeFlags value)11095   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value  )
11096   {
11097 
11098     if ( !value ) return "{}";
11099     std::string result;
11100 
11101     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
11102     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11103     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11104     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
11105     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
11106     return "{ " + result.substr(0, result.size() - 3) + " }";
11107   }
11108 
11109 
11110   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
11111 
11112   template <> struct FlagTraits<FenceCreateFlagBits>
11113   {
11114     enum : VkFlags
11115     {
11116       allFlags = VkFlags(FenceCreateFlagBits::eSignaled)
11117     };
11118   };
11119 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11120   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11121   {
11122     return FenceCreateFlags( bit0 ) | bit1;
11123   }
11124 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11125   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11126   {
11127     return FenceCreateFlags( bit0 ) & bit1;
11128   }
11129 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11130   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11131   {
11132     return FenceCreateFlags( bit0 ) ^ bit1;
11133   }
11134 
operator ~(FenceCreateFlagBits bits)11135   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11136   {
11137     return ~( FenceCreateFlags( bits ) );
11138   }
11139 
to_string(FenceCreateFlags value)11140   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value  )
11141   {
11142 
11143     if ( !value ) return "{}";
11144     std::string result;
11145 
11146     if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | ";
11147     return "{ " + result.substr(0, result.size() - 3) + " }";
11148   }
11149 
11150 
11151   using FenceImportFlags = Flags<FenceImportFlagBits>;
11152 
11153   template <> struct FlagTraits<FenceImportFlagBits>
11154   {
11155     enum : VkFlags
11156     {
11157       allFlags = VkFlags(FenceImportFlagBits::eTemporary)
11158     };
11159   };
11160 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11161   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11162   {
11163     return FenceImportFlags( bit0 ) | bit1;
11164   }
11165 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11166   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11167   {
11168     return FenceImportFlags( bit0 ) & bit1;
11169   }
11170 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11171   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11172   {
11173     return FenceImportFlags( bit0 ) ^ bit1;
11174   }
11175 
operator ~(FenceImportFlagBits bits)11176   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
11177   {
11178     return ~( FenceImportFlags( bits ) );
11179   }
11180 
11181   using FenceImportFlagsKHR = FenceImportFlags;
11182 
to_string(FenceImportFlags value)11183   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value  )
11184   {
11185 
11186     if ( !value ) return "{}";
11187     std::string result;
11188 
11189     if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | ";
11190     return "{ " + result.substr(0, result.size() - 3) + " }";
11191   }
11192 
11193 
11194   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
11195 
11196   template <> struct FlagTraits<FormatFeatureFlagBits>
11197   {
11198     enum : VkFlags
11199     {
11200       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)
11201     };
11202   };
11203 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11204   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11205   {
11206     return FormatFeatureFlags( bit0 ) | bit1;
11207   }
11208 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11209   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11210   {
11211     return FormatFeatureFlags( bit0 ) & bit1;
11212   }
11213 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11214   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11215   {
11216     return FormatFeatureFlags( bit0 ) ^ bit1;
11217   }
11218 
operator ~(FormatFeatureFlagBits bits)11219   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11220   {
11221     return ~( FormatFeatureFlags( bits ) );
11222   }
11223 
to_string(FormatFeatureFlags value)11224   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value  )
11225   {
11226 
11227     if ( !value ) return "{}";
11228     std::string result;
11229 
11230     if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | ";
11231     if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | ";
11232     if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | ";
11233     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
11234     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
11235     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | ";
11236     if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
11237     if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | ";
11238     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | ";
11239     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
11240     if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | ";
11241     if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | ";
11242     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | ";
11243     if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | ";
11244     if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | ";
11245     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | ";
11246     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | ";
11247     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
11248     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
11249     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
11250     if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
11251     if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
11252     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | ";
11253     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
11254     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) result += "AccelerationStructureVertexBufferKHR | ";
11255     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
11256     return "{ " + result.substr(0, result.size() - 3) + " }";
11257   }
11258 
11259 
11260   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
11261 
11262   template <> struct FlagTraits<FramebufferCreateFlagBits>
11263   {
11264     enum : VkFlags
11265     {
11266       allFlags = VkFlags(FramebufferCreateFlagBits::eImageless)
11267     };
11268   };
11269 
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11270   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11271   {
11272     return FramebufferCreateFlags( bit0 ) | bit1;
11273   }
11274 
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11275   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11276   {
11277     return FramebufferCreateFlags( bit0 ) & bit1;
11278   }
11279 
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11280   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11281   {
11282     return FramebufferCreateFlags( bit0 ) ^ bit1;
11283   }
11284 
operator ~(FramebufferCreateFlagBits bits)11285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11286   {
11287     return ~( FramebufferCreateFlags( bits ) );
11288   }
11289 
to_string(FramebufferCreateFlags value)11290   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value  )
11291   {
11292 
11293     if ( !value ) return "{}";
11294     std::string result;
11295 
11296     if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | ";
11297     return "{ " + result.substr(0, result.size() - 3) + " }";
11298   }
11299 
11300 
11301   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
11302 
11303   template <> struct FlagTraits<GeometryFlagBitsKHR>
11304   {
11305     enum : VkFlags
11306     {
11307       allFlags = VkFlags(GeometryFlagBitsKHR::eOpaque) | VkFlags(GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation)
11308     };
11309   };
11310 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11311   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11312   {
11313     return GeometryFlagsKHR( bit0 ) | bit1;
11314   }
11315 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11316   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11317   {
11318     return GeometryFlagsKHR( bit0 ) & bit1;
11319   }
11320 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11321   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11322   {
11323     return GeometryFlagsKHR( bit0 ) ^ bit1;
11324   }
11325 
operator ~(GeometryFlagBitsKHR bits)11326   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11327   {
11328     return ~( GeometryFlagsKHR( bits ) );
11329   }
11330 
11331   using GeometryFlagsNV = GeometryFlagsKHR;
11332 
to_string(GeometryFlagsKHR value)11333   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value  )
11334   {
11335 
11336     if ( !value ) return "{}";
11337     std::string result;
11338 
11339     if ( value & GeometryFlagBitsKHR::eOpaque ) result += "Opaque | ";
11340     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | ";
11341     return "{ " + result.substr(0, result.size() - 3) + " }";
11342   }
11343 
11344 
11345   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
11346 
11347   template <> struct FlagTraits<GeometryInstanceFlagBitsKHR>
11348   {
11349     enum : VkFlags
11350     {
11351       allFlags = VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable) | VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsKHR::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsKHR::eForceNoOpaque)
11352     };
11353   };
11354 
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11355   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11356   {
11357     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
11358   }
11359 
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11360   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11361   {
11362     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
11363   }
11364 
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11365   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11366   {
11367     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
11368   }
11369 
operator ~(GeometryInstanceFlagBitsKHR bits)11370   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11371   {
11372     return ~( GeometryInstanceFlagsKHR( bits ) );
11373   }
11374 
11375   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
11376 
to_string(GeometryInstanceFlagsKHR value)11377   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value  )
11378   {
11379 
11380     if ( !value ) return "{}";
11381     std::string result;
11382 
11383     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) result += "TriangleFacingCullDisable | ";
11384     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
11385     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) result += "ForceOpaque | ";
11386     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) result += "ForceNoOpaque | ";
11387     return "{ " + result.substr(0, result.size() - 3) + " }";
11388   }
11389 
11390   enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags
11391   {};
11392 
to_string(HeadlessSurfaceCreateFlagBitsEXT)11393   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
11394   {
11395     return "(void)";
11396   }
11397 
11398   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
11399 
to_string(HeadlessSurfaceCreateFlagsEXT)11400   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT  )
11401   {
11402 
11403     return "{}";
11404   }
11405 
11406 #ifdef VK_USE_PLATFORM_IOS_MVK
11407   enum class IOSSurfaceCreateFlagBitsMVK : VkFlags
11408   {};
11409 
to_string(IOSSurfaceCreateFlagBitsMVK)11410   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
11411   {
11412     return "(void)";
11413   }
11414 
11415   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
11416 
to_string(IOSSurfaceCreateFlagsMVK)11417   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK  )
11418   {
11419 
11420     return "{}";
11421   }
11422 #endif /*VK_USE_PLATFORM_IOS_MVK*/
11423 
11424 
11425   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
11426 
11427   template <> struct FlagTraits<ImageAspectFlagBits>
11428   {
11429     enum : VkFlags
11430     {
11431       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)
11432     };
11433   };
11434 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11435   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11436   {
11437     return ImageAspectFlags( bit0 ) | bit1;
11438   }
11439 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11440   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11441   {
11442     return ImageAspectFlags( bit0 ) & bit1;
11443   }
11444 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11445   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11446   {
11447     return ImageAspectFlags( bit0 ) ^ bit1;
11448   }
11449 
operator ~(ImageAspectFlagBits bits)11450   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
11451   {
11452     return ~( ImageAspectFlags( bits ) );
11453   }
11454 
to_string(ImageAspectFlags value)11455   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value  )
11456   {
11457 
11458     if ( !value ) return "{}";
11459     std::string result;
11460 
11461     if ( value & ImageAspectFlagBits::eColor ) result += "Color | ";
11462     if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | ";
11463     if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | ";
11464     if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | ";
11465     if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | ";
11466     if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | ";
11467     if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | ";
11468     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | ";
11469     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
11470     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
11471     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | ";
11472     return "{ " + result.substr(0, result.size() - 3) + " }";
11473   }
11474 
11475 
11476   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
11477 
11478   template <> struct FlagTraits<ImageCreateFlagBits>
11479   {
11480     enum : VkFlags
11481     {
11482       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)
11483     };
11484   };
11485 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11486   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11487   {
11488     return ImageCreateFlags( bit0 ) | bit1;
11489   }
11490 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11491   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11492   {
11493     return ImageCreateFlags( bit0 ) & bit1;
11494   }
11495 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11496   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11497   {
11498     return ImageCreateFlags( bit0 ) ^ bit1;
11499   }
11500 
operator ~(ImageCreateFlagBits bits)11501   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11502   {
11503     return ~( ImageCreateFlags( bits ) );
11504   }
11505 
to_string(ImageCreateFlags value)11506   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value  )
11507   {
11508 
11509     if ( !value ) return "{}";
11510     std::string result;
11511 
11512     if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
11513     if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
11514     if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
11515     if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | ";
11516     if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | ";
11517     if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | ";
11518     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
11519     if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | ";
11520     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | ";
11521     if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | ";
11522     if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | ";
11523     if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | ";
11524     if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
11525     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
11526     if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
11527     return "{ " + result.substr(0, result.size() - 3) + " }";
11528   }
11529 
11530 #ifdef VK_USE_PLATFORM_FUCHSIA
11531   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags
11532   {};
11533 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)11534   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
11535   {
11536     return "(void)";
11537   }
11538 
11539   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
11540 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)11541   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA  )
11542   {
11543 
11544     return "{}";
11545   }
11546 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11547 
11548 
11549   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
11550 
11551   template <> struct FlagTraits<ImageUsageFlagBits>
11552   {
11553     enum : VkFlags
11554     {
11555       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)
11556     };
11557   };
11558 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11559   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11560   {
11561     return ImageUsageFlags( bit0 ) | bit1;
11562   }
11563 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11564   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11565   {
11566     return ImageUsageFlags( bit0 ) & bit1;
11567   }
11568 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11569   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11570   {
11571     return ImageUsageFlags( bit0 ) ^ bit1;
11572   }
11573 
operator ~(ImageUsageFlagBits bits)11574   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
11575   {
11576     return ~( ImageUsageFlags( bits ) );
11577   }
11578 
to_string(ImageUsageFlags value)11579   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value  )
11580   {
11581 
11582     if ( !value ) return "{}";
11583     std::string result;
11584 
11585     if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
11586     if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | ";
11587     if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | ";
11588     if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | ";
11589     if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | ";
11590     if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
11591     if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | ";
11592     if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
11593     if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
11594     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
11595     return "{ " + result.substr(0, result.size() - 3) + " }";
11596   }
11597 
11598 
11599   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
11600 
11601   template <> struct FlagTraits<ImageViewCreateFlagBits>
11602   {
11603     enum : VkFlags
11604     {
11605       allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT) | VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT)
11606     };
11607   };
11608 
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11609   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11610   {
11611     return ImageViewCreateFlags( bit0 ) | bit1;
11612   }
11613 
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11614   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11615   {
11616     return ImageViewCreateFlags( bit0 ) & bit1;
11617   }
11618 
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11619   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11620   {
11621     return ImageViewCreateFlags( bit0 ) ^ bit1;
11622   }
11623 
operator ~(ImageViewCreateFlagBits bits)11624   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11625   {
11626     return ~( ImageViewCreateFlags( bits ) );
11627   }
11628 
to_string(ImageViewCreateFlags value)11629   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value  )
11630   {
11631 
11632     if ( !value ) return "{}";
11633     std::string result;
11634 
11635     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | ";
11636     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) result += "FragmentDensityMapDeferredEXT | ";
11637     return "{ " + result.substr(0, result.size() - 3) + " }";
11638   }
11639 
11640 
11641   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
11642 
11643   template <> struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
11644   {
11645     enum : VkFlags
11646     {
11647       allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences)
11648     };
11649   };
11650 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11651   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11652   {
11653     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
11654   }
11655 
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11656   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11657   {
11658     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
11659   }
11660 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11661   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11662   {
11663     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
11664   }
11665 
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)11666   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11667   {
11668     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
11669   }
11670 
to_string(IndirectCommandsLayoutUsageFlagsNV value)11671   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value  )
11672   {
11673 
11674     if ( !value ) return "{}";
11675     std::string result;
11676 
11677     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) result += "ExplicitPreprocess | ";
11678     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) result += "IndexedSequences | ";
11679     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) result += "UnorderedSequences | ";
11680     return "{ " + result.substr(0, result.size() - 3) + " }";
11681   }
11682 
11683 
11684   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
11685 
11686   template <> struct FlagTraits<IndirectStateFlagBitsNV>
11687   {
11688     enum : VkFlags
11689     {
11690       allFlags = VkFlags(IndirectStateFlagBitsNV::eFlagFrontface)
11691     };
11692   };
11693 
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11694   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11695   {
11696     return IndirectStateFlagsNV( bit0 ) | bit1;
11697   }
11698 
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11699   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11700   {
11701     return IndirectStateFlagsNV( bit0 ) & bit1;
11702   }
11703 
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11704   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11705   {
11706     return IndirectStateFlagsNV( bit0 ) ^ bit1;
11707   }
11708 
operator ~(IndirectStateFlagBitsNV bits)11709   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11710   {
11711     return ~( IndirectStateFlagsNV( bits ) );
11712   }
11713 
to_string(IndirectStateFlagsNV value)11714   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value  )
11715   {
11716 
11717     if ( !value ) return "{}";
11718     std::string result;
11719 
11720     if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) result += "FlagFrontface | ";
11721     return "{ " + result.substr(0, result.size() - 3) + " }";
11722   }
11723 
11724 
11725   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
11726 
to_string(InstanceCreateFlags)11727   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags  )
11728   {
11729 
11730     return "{}";
11731   }
11732 
11733 #ifdef VK_USE_PLATFORM_MACOS_MVK
11734   enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags
11735   {};
11736 
to_string(MacOSSurfaceCreateFlagBitsMVK)11737   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
11738   {
11739     return "(void)";
11740   }
11741 
11742   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
11743 
to_string(MacOSSurfaceCreateFlagsMVK)11744   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK  )
11745   {
11746 
11747     return "{}";
11748   }
11749 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
11750 
11751 
11752   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
11753 
11754   template <> struct FlagTraits<MemoryAllocateFlagBits>
11755   {
11756     enum : VkFlags
11757     {
11758       allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask) | VkFlags(MemoryAllocateFlagBits::eDeviceAddress) | VkFlags(MemoryAllocateFlagBits::eDeviceAddressCaptureReplay)
11759     };
11760   };
11761 
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11762   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11763   {
11764     return MemoryAllocateFlags( bit0 ) | bit1;
11765   }
11766 
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11768   {
11769     return MemoryAllocateFlags( bit0 ) & bit1;
11770   }
11771 
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11772   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11773   {
11774     return MemoryAllocateFlags( bit0 ) ^ bit1;
11775   }
11776 
operator ~(MemoryAllocateFlagBits bits)11777   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11778   {
11779     return ~( MemoryAllocateFlags( bits ) );
11780   }
11781 
11782   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
11783 
to_string(MemoryAllocateFlags value)11784   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value  )
11785   {
11786 
11787     if ( !value ) return "{}";
11788     std::string result;
11789 
11790     if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | ";
11791     if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | ";
11792     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
11793     return "{ " + result.substr(0, result.size() - 3) + " }";
11794   }
11795 
11796 
11797   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
11798 
11799   template <> struct FlagTraits<MemoryHeapFlagBits>
11800   {
11801     enum : VkFlags
11802     {
11803       allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance)
11804     };
11805   };
11806 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11807   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11808   {
11809     return MemoryHeapFlags( bit0 ) | bit1;
11810   }
11811 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11812   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11813   {
11814     return MemoryHeapFlags( bit0 ) & bit1;
11815   }
11816 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11817   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11818   {
11819     return MemoryHeapFlags( bit0 ) ^ bit1;
11820   }
11821 
operator ~(MemoryHeapFlagBits bits)11822   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
11823   {
11824     return ~( MemoryHeapFlags( bits ) );
11825   }
11826 
to_string(MemoryHeapFlags value)11827   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value  )
11828   {
11829 
11830     if ( !value ) return "{}";
11831     std::string result;
11832 
11833     if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
11834     if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | ";
11835     return "{ " + result.substr(0, result.size() - 3) + " }";
11836   }
11837 
11838   enum class MemoryMapFlagBits : VkFlags
11839   {};
11840 
to_string(MemoryMapFlagBits)11841   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
11842   {
11843     return "(void)";
11844   }
11845 
11846   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
11847 
to_string(MemoryMapFlags)11848   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags  )
11849   {
11850 
11851     return "{}";
11852   }
11853 
11854 
11855   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
11856 
11857   template <> struct FlagTraits<MemoryPropertyFlagBits>
11858   {
11859     enum : VkFlags
11860     {
11861       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)
11862     };
11863   };
11864 
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11865   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11866   {
11867     return MemoryPropertyFlags( bit0 ) | bit1;
11868   }
11869 
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11870   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11871   {
11872     return MemoryPropertyFlags( bit0 ) & bit1;
11873   }
11874 
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)11875   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11876   {
11877     return MemoryPropertyFlags( bit0 ) ^ bit1;
11878   }
11879 
operator ~(MemoryPropertyFlagBits bits)11880   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT
11881   {
11882     return ~( MemoryPropertyFlags( bits ) );
11883   }
11884 
to_string(MemoryPropertyFlags value)11885   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value  )
11886   {
11887 
11888     if ( !value ) return "{}";
11889     std::string result;
11890 
11891     if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
11892     if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | ";
11893     if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | ";
11894     if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
11895     if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
11896     if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | ";
11897     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | ";
11898     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | ";
11899     return "{ " + result.substr(0, result.size() - 3) + " }";
11900   }
11901 
11902 #ifdef VK_USE_PLATFORM_METAL_EXT
11903   enum class MetalSurfaceCreateFlagBitsEXT : VkFlags
11904   {};
11905 
to_string(MetalSurfaceCreateFlagBitsEXT)11906   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
11907   {
11908     return "(void)";
11909   }
11910 
11911   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
11912 
to_string(MetalSurfaceCreateFlagsEXT)11913   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT  )
11914   {
11915 
11916     return "{}";
11917   }
11918 #endif /*VK_USE_PLATFORM_METAL_EXT*/
11919 
11920 
11921   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
11922 
11923   template <> struct FlagTraits<PeerMemoryFeatureFlagBits>
11924   {
11925     enum : VkFlags
11926     {
11927       allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst)
11928     };
11929   };
11930 
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11931   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11932   {
11933     return PeerMemoryFeatureFlags( bit0 ) | bit1;
11934   }
11935 
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11936   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11937   {
11938     return PeerMemoryFeatureFlags( bit0 ) & bit1;
11939   }
11940 
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11941   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11942   {
11943     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
11944   }
11945 
operator ~(PeerMemoryFeatureFlagBits bits)11946   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11947   {
11948     return ~( PeerMemoryFeatureFlags( bits ) );
11949   }
11950 
11951   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
11952 
to_string(PeerMemoryFeatureFlags value)11953   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value  )
11954   {
11955 
11956     if ( !value ) return "{}";
11957     std::string result;
11958 
11959     if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | ";
11960     if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
11961     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
11962     if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | ";
11963     return "{ " + result.substr(0, result.size() - 3) + " }";
11964   }
11965 
11966 
11967   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
11968 
11969   template <> struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
11970   {
11971     enum : VkFlags
11972     {
11973       allFlags = VkFlags(PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting) | VkFlags(PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted)
11974     };
11975   };
11976 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)11977   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11978   {
11979     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
11980   }
11981 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)11982   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11983   {
11984     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
11985   }
11986 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)11987   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11988   {
11989     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
11990   }
11991 
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)11992   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11993   {
11994     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
11995   }
11996 
to_string(PerformanceCounterDescriptionFlagsKHR value)11997   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value  )
11998   {
11999 
12000     if ( !value ) return "{}";
12001     std::string result;
12002 
12003     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | ";
12004     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | ";
12005     return "{ " + result.substr(0, result.size() - 3) + " }";
12006   }
12007 
12008 
12009   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
12010 
12011   template <> struct FlagTraits<PipelineCacheCreateFlagBits>
12012   {
12013     enum : VkFlags
12014     {
12015       allFlags = VkFlags(PipelineCacheCreateFlagBits::eExternallySynchronizedEXT)
12016     };
12017   };
12018 
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12019   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12020   {
12021     return PipelineCacheCreateFlags( bit0 ) | bit1;
12022   }
12023 
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12024   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12025   {
12026     return PipelineCacheCreateFlags( bit0 ) & bit1;
12027   }
12028 
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12029   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12030   {
12031     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
12032   }
12033 
operator ~(PipelineCacheCreateFlagBits bits)12034   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12035   {
12036     return ~( PipelineCacheCreateFlags( bits ) );
12037   }
12038 
to_string(PipelineCacheCreateFlags value)12039   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value  )
12040   {
12041 
12042     if ( !value ) return "{}";
12043     std::string result;
12044 
12045     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) result += "ExternallySynchronizedEXT | ";
12046     return "{ " + result.substr(0, result.size() - 3) + " }";
12047   }
12048 
12049   enum class PipelineColorBlendStateCreateFlagBits : VkFlags
12050   {};
12051 
to_string(PipelineColorBlendStateCreateFlagBits)12052   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
12053   {
12054     return "(void)";
12055   }
12056 
12057   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
12058 
to_string(PipelineColorBlendStateCreateFlags)12059   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags  )
12060   {
12061 
12062     return "{}";
12063   }
12064 
12065 
12066   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
12067 
to_string(PipelineCompilerControlFlagsAMD)12068   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD  )
12069   {
12070 
12071     return "{}";
12072   }
12073 
12074   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags
12075   {};
12076 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)12077   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
12078   {
12079     return "(void)";
12080   }
12081 
12082   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
12083 
to_string(PipelineCoverageModulationStateCreateFlagsNV)12084   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV  )
12085   {
12086 
12087     return "{}";
12088   }
12089 
12090   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags
12091   {};
12092 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)12093   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
12094   {
12095     return "(void)";
12096   }
12097 
12098   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
12099 
to_string(PipelineCoverageReductionStateCreateFlagsNV)12100   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV  )
12101   {
12102 
12103     return "{}";
12104   }
12105 
12106   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags
12107   {};
12108 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)12109   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
12110   {
12111     return "(void)";
12112   }
12113 
12114   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
12115 
to_string(PipelineCoverageToColorStateCreateFlagsNV)12116   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV  )
12117   {
12118 
12119     return "{}";
12120   }
12121 
12122 
12123   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
12124 
12125   template <> struct FlagTraits<PipelineCreateFlagBits>
12126   {
12127     enum : VkFlags
12128     {
12129       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)
12130     };
12131   };
12132 
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12133   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12134   {
12135     return PipelineCreateFlags( bit0 ) | bit1;
12136   }
12137 
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12138   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12139   {
12140     return PipelineCreateFlags( bit0 ) & bit1;
12141   }
12142 
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12143   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12144   {
12145     return PipelineCreateFlags( bit0 ) ^ bit1;
12146   }
12147 
operator ~(PipelineCreateFlagBits bits)12148   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12149   {
12150     return ~( PipelineCreateFlags( bits ) );
12151   }
12152 
to_string(PipelineCreateFlags value)12153   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value  )
12154   {
12155 
12156     if ( !value ) return "{}";
12157     std::string result;
12158 
12159     if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | ";
12160     if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | ";
12161     if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | ";
12162     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
12163     if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
12164     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) result += "RayTracingNoNullAnyHitShadersKHR | ";
12165     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) result += "RayTracingNoNullClosestHitShadersKHR | ";
12166     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) result += "RayTracingNoNullMissShadersKHR | ";
12167     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) result += "RayTracingNoNullIntersectionShadersKHR | ";
12168     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) result += "RayTracingSkipTrianglesKHR | ";
12169     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) result += "RayTracingSkipAabbsKHR | ";
12170     if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | ";
12171     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | ";
12172     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | ";
12173     if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) result += "IndirectBindableNV | ";
12174     if ( value & PipelineCreateFlagBits::eLibraryKHR ) result += "LibraryKHR | ";
12175     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) result += "FailOnPipelineCompileRequiredEXT | ";
12176     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) result += "EarlyReturnOnFailureEXT | ";
12177     return "{ " + result.substr(0, result.size() - 3) + " }";
12178   }
12179 
12180 
12181   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
12182 
12183   template <> struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
12184   {
12185     enum : VkFlags
12186     {
12187       allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration)
12188     };
12189   };
12190 
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12191   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12192   {
12193     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
12194   }
12195 
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12196   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12197   {
12198     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
12199   }
12200 
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12201   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12202   {
12203     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
12204   }
12205 
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)12206   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12207   {
12208     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
12209   }
12210 
to_string(PipelineCreationFeedbackFlagsEXT value)12211   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value  )
12212   {
12213 
12214     if ( !value ) return "{}";
12215     std::string result;
12216 
12217     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | ";
12218     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | ";
12219     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | ";
12220     return "{ " + result.substr(0, result.size() - 3) + " }";
12221   }
12222 
12223   enum class PipelineDepthStencilStateCreateFlagBits : VkFlags
12224   {};
12225 
to_string(PipelineDepthStencilStateCreateFlagBits)12226   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
12227   {
12228     return "(void)";
12229   }
12230 
12231   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
12232 
to_string(PipelineDepthStencilStateCreateFlags)12233   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags  )
12234   {
12235 
12236     return "{}";
12237   }
12238 
12239   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags
12240   {};
12241 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)12242   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
12243   {
12244     return "(void)";
12245   }
12246 
12247   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
12248 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)12249   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT  )
12250   {
12251 
12252     return "{}";
12253   }
12254 
12255   enum class PipelineDynamicStateCreateFlagBits : VkFlags
12256   {};
12257 
to_string(PipelineDynamicStateCreateFlagBits)12258   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
12259   {
12260     return "(void)";
12261   }
12262 
12263   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
12264 
to_string(PipelineDynamicStateCreateFlags)12265   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags  )
12266   {
12267 
12268     return "{}";
12269   }
12270 
12271   enum class PipelineInputAssemblyStateCreateFlagBits : VkFlags
12272   {};
12273 
to_string(PipelineInputAssemblyStateCreateFlagBits)12274   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
12275   {
12276     return "(void)";
12277   }
12278 
12279   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
12280 
to_string(PipelineInputAssemblyStateCreateFlags)12281   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags  )
12282   {
12283 
12284     return "{}";
12285   }
12286 
12287   enum class PipelineLayoutCreateFlagBits : VkFlags
12288   {};
12289 
to_string(PipelineLayoutCreateFlagBits)12290   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
12291   {
12292     return "(void)";
12293   }
12294 
12295   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
12296 
to_string(PipelineLayoutCreateFlags)12297   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags  )
12298   {
12299 
12300     return "{}";
12301   }
12302 
12303   enum class PipelineMultisampleStateCreateFlagBits : VkFlags
12304   {};
12305 
to_string(PipelineMultisampleStateCreateFlagBits)12306   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
12307   {
12308     return "(void)";
12309   }
12310 
12311   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
12312 
to_string(PipelineMultisampleStateCreateFlags)12313   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags  )
12314   {
12315 
12316     return "{}";
12317   }
12318 
12319   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags
12320   {};
12321 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)12322   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
12323   {
12324     return "(void)";
12325   }
12326 
12327   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
12328 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)12329   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT  )
12330   {
12331 
12332     return "{}";
12333   }
12334 
12335   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags
12336   {};
12337 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)12338   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
12339   {
12340     return "(void)";
12341   }
12342 
12343   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
12344 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)12345   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT  )
12346   {
12347 
12348     return "{}";
12349   }
12350 
12351   enum class PipelineRasterizationStateCreateFlagBits : VkFlags
12352   {};
12353 
to_string(PipelineRasterizationStateCreateFlagBits)12354   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
12355   {
12356     return "(void)";
12357   }
12358 
12359   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
12360 
to_string(PipelineRasterizationStateCreateFlags)12361   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags  )
12362   {
12363 
12364     return "{}";
12365   }
12366 
12367   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags
12368   {};
12369 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)12370   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
12371   {
12372     return "(void)";
12373   }
12374 
12375   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
12376 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)12377   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT  )
12378   {
12379 
12380     return "{}";
12381   }
12382 
12383 
12384   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
12385 
12386   template <> struct FlagTraits<PipelineShaderStageCreateFlagBits>
12387   {
12388     enum : VkFlags
12389     {
12390       allFlags = VkFlags(PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT) | VkFlags(PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT)
12391     };
12392   };
12393 
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12394   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12395   {
12396     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
12397   }
12398 
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12399   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12400   {
12401     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
12402   }
12403 
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12404   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12405   {
12406     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
12407   }
12408 
operator ~(PipelineShaderStageCreateFlagBits bits)12409   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12410   {
12411     return ~( PipelineShaderStageCreateFlags( bits ) );
12412   }
12413 
to_string(PipelineShaderStageCreateFlags value)12414   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value  )
12415   {
12416 
12417     if ( !value ) return "{}";
12418     std::string result;
12419 
12420     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | ";
12421     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | ";
12422     return "{ " + result.substr(0, result.size() - 3) + " }";
12423   }
12424 
12425 
12426   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
12427 
12428   template <> struct FlagTraits<PipelineStageFlagBits>
12429   {
12430     enum : VkFlags
12431     {
12432       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)
12433     };
12434   };
12435 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12436   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12437   {
12438     return PipelineStageFlags( bit0 ) | bit1;
12439   }
12440 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12441   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12442   {
12443     return PipelineStageFlags( bit0 ) & bit1;
12444   }
12445 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12446   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12447   {
12448     return PipelineStageFlags( bit0 ) ^ bit1;
12449   }
12450 
operator ~(PipelineStageFlagBits bits)12451   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
12452   {
12453     return ~( PipelineStageFlags( bits ) );
12454   }
12455 
to_string(PipelineStageFlags value)12456   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value  )
12457   {
12458 
12459     if ( !value ) return "{}";
12460     std::string result;
12461 
12462     if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | ";
12463     if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | ";
12464     if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | ";
12465     if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | ";
12466     if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | ";
12467     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | ";
12468     if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | ";
12469     if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | ";
12470     if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | ";
12471     if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | ";
12472     if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | ";
12473     if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | ";
12474     if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | ";
12475     if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | ";
12476     if ( value & PipelineStageFlagBits::eHost ) result += "Host | ";
12477     if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | ";
12478     if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | ";
12479     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | ";
12480     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
12481     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) result += "RayTracingShaderKHR | ";
12482     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) result += "AccelerationStructureBuildKHR | ";
12483     if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
12484     if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
12485     if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
12486     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | ";
12487     if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) result += "CommandPreprocessNV | ";
12488     return "{ " + result.substr(0, result.size() - 3) + " }";
12489   }
12490 
12491   enum class PipelineTessellationStateCreateFlagBits : VkFlags
12492   {};
12493 
to_string(PipelineTessellationStateCreateFlagBits)12494   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
12495   {
12496     return "(void)";
12497   }
12498 
12499   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
12500 
to_string(PipelineTessellationStateCreateFlags)12501   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags  )
12502   {
12503 
12504     return "{}";
12505   }
12506 
12507   enum class PipelineVertexInputStateCreateFlagBits : VkFlags
12508   {};
12509 
to_string(PipelineVertexInputStateCreateFlagBits)12510   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
12511   {
12512     return "(void)";
12513   }
12514 
12515   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
12516 
to_string(PipelineVertexInputStateCreateFlags)12517   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags  )
12518   {
12519 
12520     return "{}";
12521   }
12522 
12523   enum class PipelineViewportStateCreateFlagBits : VkFlags
12524   {};
12525 
to_string(PipelineViewportStateCreateFlagBits)12526   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
12527   {
12528     return "(void)";
12529   }
12530 
12531   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
12532 
to_string(PipelineViewportStateCreateFlags)12533   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags  )
12534   {
12535 
12536     return "{}";
12537   }
12538 
12539   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags
12540   {};
12541 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)12542   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
12543   {
12544     return "(void)";
12545   }
12546 
12547   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
12548 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)12549   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV  )
12550   {
12551 
12552     return "{}";
12553   }
12554 
12555 
12556   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
12557 
to_string(PrivateDataSlotCreateFlagsEXT)12558   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT  )
12559   {
12560 
12561     return "{}";
12562   }
12563 
12564 
12565   using QueryControlFlags = Flags<QueryControlFlagBits>;
12566 
12567   template <> struct FlagTraits<QueryControlFlagBits>
12568   {
12569     enum : VkFlags
12570     {
12571       allFlags = VkFlags(QueryControlFlagBits::ePrecise)
12572     };
12573   };
12574 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12575   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12576   {
12577     return QueryControlFlags( bit0 ) | bit1;
12578   }
12579 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12580   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12581   {
12582     return QueryControlFlags( bit0 ) & bit1;
12583   }
12584 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12585   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12586   {
12587     return QueryControlFlags( bit0 ) ^ bit1;
12588   }
12589 
operator ~(QueryControlFlagBits bits)12590   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
12591   {
12592     return ~( QueryControlFlags( bits ) );
12593   }
12594 
to_string(QueryControlFlags value)12595   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value  )
12596   {
12597 
12598     if ( !value ) return "{}";
12599     std::string result;
12600 
12601     if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | ";
12602     return "{ " + result.substr(0, result.size() - 3) + " }";
12603   }
12604 
12605 
12606   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
12607 
12608   template <> struct FlagTraits<QueryPipelineStatisticFlagBits>
12609   {
12610     enum : VkFlags
12611     {
12612       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)
12613     };
12614   };
12615 
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12616   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12617   {
12618     return QueryPipelineStatisticFlags( bit0 ) | bit1;
12619   }
12620 
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12621   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12622   {
12623     return QueryPipelineStatisticFlags( bit0 ) & bit1;
12624   }
12625 
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12626   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12627   {
12628     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
12629   }
12630 
operator ~(QueryPipelineStatisticFlagBits bits)12631   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT
12632   {
12633     return ~( QueryPipelineStatisticFlags( bits ) );
12634   }
12635 
to_string(QueryPipelineStatisticFlags value)12636   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value  )
12637   {
12638 
12639     if ( !value ) return "{}";
12640     std::string result;
12641 
12642     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | ";
12643     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | ";
12644     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | ";
12645     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | ";
12646     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | ";
12647     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | ";
12648     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | ";
12649     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | ";
12650     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
12651     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
12652     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | ";
12653     return "{ " + result.substr(0, result.size() - 3) + " }";
12654   }
12655 
12656 
12657   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
12658 
to_string(QueryPoolCreateFlags)12659   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags  )
12660   {
12661 
12662     return "{}";
12663   }
12664 
12665 
12666   using QueryResultFlags = Flags<QueryResultFlagBits>;
12667 
12668   template <> struct FlagTraits<QueryResultFlagBits>
12669   {
12670     enum : VkFlags
12671     {
12672       allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial)
12673     };
12674   };
12675 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12676   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12677   {
12678     return QueryResultFlags( bit0 ) | bit1;
12679   }
12680 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12681   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12682   {
12683     return QueryResultFlags( bit0 ) & bit1;
12684   }
12685 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12686   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12687   {
12688     return QueryResultFlags( bit0 ) ^ bit1;
12689   }
12690 
operator ~(QueryResultFlagBits bits)12691   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
12692   {
12693     return ~( QueryResultFlags( bits ) );
12694   }
12695 
to_string(QueryResultFlags value)12696   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value  )
12697   {
12698 
12699     if ( !value ) return "{}";
12700     std::string result;
12701 
12702     if ( value & QueryResultFlagBits::e64 ) result += "64 | ";
12703     if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
12704     if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
12705     if ( value & QueryResultFlagBits::ePartial ) result += "Partial | ";
12706     return "{ " + result.substr(0, result.size() - 3) + " }";
12707   }
12708 
12709 
12710   using QueueFlags = Flags<QueueFlagBits>;
12711 
12712   template <> struct FlagTraits<QueueFlagBits>
12713   {
12714     enum : VkFlags
12715     {
12716       allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected)
12717     };
12718   };
12719 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)12720   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12721   {
12722     return QueueFlags( bit0 ) | bit1;
12723   }
12724 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)12725   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12726   {
12727     return QueueFlags( bit0 ) & bit1;
12728   }
12729 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)12730   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12731   {
12732     return QueueFlags( bit0 ) ^ bit1;
12733   }
12734 
operator ~(QueueFlagBits bits)12735   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
12736   {
12737     return ~( QueueFlags( bits ) );
12738   }
12739 
to_string(QueueFlags value)12740   VULKAN_HPP_INLINE std::string to_string( QueueFlags value  )
12741   {
12742 
12743     if ( !value ) return "{}";
12744     std::string result;
12745 
12746     if ( value & QueueFlagBits::eGraphics ) result += "Graphics | ";
12747     if ( value & QueueFlagBits::eCompute ) result += "Compute | ";
12748     if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
12749     if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
12750     if ( value & QueueFlagBits::eProtected ) result += "Protected | ";
12751     return "{ " + result.substr(0, result.size() - 3) + " }";
12752   }
12753 
12754 
12755   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
12756 
12757   template <> struct FlagTraits<RenderPassCreateFlagBits>
12758   {
12759     enum : VkFlags
12760     {
12761       allFlags = VkFlags(RenderPassCreateFlagBits::eTransformQCOM)
12762     };
12763   };
12764 
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12765   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12766   {
12767     return RenderPassCreateFlags( bit0 ) | bit1;
12768   }
12769 
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12770   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12771   {
12772     return RenderPassCreateFlags( bit0 ) & bit1;
12773   }
12774 
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12775   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12776   {
12777     return RenderPassCreateFlags( bit0 ) ^ bit1;
12778   }
12779 
operator ~(RenderPassCreateFlagBits bits)12780   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12781   {
12782     return ~( RenderPassCreateFlags( bits ) );
12783   }
12784 
to_string(RenderPassCreateFlags value)12785   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value  )
12786   {
12787 
12788     if ( !value ) return "{}";
12789     std::string result;
12790 
12791     if ( value & RenderPassCreateFlagBits::eTransformQCOM ) result += "TransformQCOM | ";
12792     return "{ " + result.substr(0, result.size() - 3) + " }";
12793   }
12794 
12795 
12796   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
12797 
12798   template <> struct FlagTraits<ResolveModeFlagBits>
12799   {
12800     enum : VkFlags
12801     {
12802       allFlags = VkFlags(ResolveModeFlagBits::eNone) | VkFlags(ResolveModeFlagBits::eSampleZero) | VkFlags(ResolveModeFlagBits::eAverage) | VkFlags(ResolveModeFlagBits::eMin) | VkFlags(ResolveModeFlagBits::eMax)
12803     };
12804   };
12805 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12806   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12807   {
12808     return ResolveModeFlags( bit0 ) | bit1;
12809   }
12810 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12811   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12812   {
12813     return ResolveModeFlags( bit0 ) & bit1;
12814   }
12815 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12816   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12817   {
12818     return ResolveModeFlags( bit0 ) ^ bit1;
12819   }
12820 
operator ~(ResolveModeFlagBits bits)12821   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
12822   {
12823     return ~( ResolveModeFlags( bits ) );
12824   }
12825 
12826   using ResolveModeFlagsKHR = ResolveModeFlags;
12827 
to_string(ResolveModeFlags value)12828   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value  )
12829   {
12830 
12831     if ( !value ) return "{}";
12832     std::string result;
12833 
12834     if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | ";
12835     if ( value & ResolveModeFlagBits::eAverage ) result += "Average | ";
12836     if ( value & ResolveModeFlagBits::eMin ) result += "Min | ";
12837     if ( value & ResolveModeFlagBits::eMax ) result += "Max | ";
12838     return "{ " + result.substr(0, result.size() - 3) + " }";
12839   }
12840 
12841 
12842   using SampleCountFlags = Flags<SampleCountFlagBits>;
12843 
12844   template <> struct FlagTraits<SampleCountFlagBits>
12845   {
12846     enum : VkFlags
12847     {
12848       allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64)
12849     };
12850   };
12851 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12852   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12853   {
12854     return SampleCountFlags( bit0 ) | bit1;
12855   }
12856 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12857   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12858   {
12859     return SampleCountFlags( bit0 ) & bit1;
12860   }
12861 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)12862   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12863   {
12864     return SampleCountFlags( bit0 ) ^ bit1;
12865   }
12866 
operator ~(SampleCountFlagBits bits)12867   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
12868   {
12869     return ~( SampleCountFlags( bits ) );
12870   }
12871 
to_string(SampleCountFlags value)12872   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value  )
12873   {
12874 
12875     if ( !value ) return "{}";
12876     std::string result;
12877 
12878     if ( value & SampleCountFlagBits::e1 ) result += "1 | ";
12879     if ( value & SampleCountFlagBits::e2 ) result += "2 | ";
12880     if ( value & SampleCountFlagBits::e4 ) result += "4 | ";
12881     if ( value & SampleCountFlagBits::e8 ) result += "8 | ";
12882     if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
12883     if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
12884     if ( value & SampleCountFlagBits::e64 ) result += "64 | ";
12885     return "{ " + result.substr(0, result.size() - 3) + " }";
12886   }
12887 
12888 
12889   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
12890 
12891   template <> struct FlagTraits<SamplerCreateFlagBits>
12892   {
12893     enum : VkFlags
12894     {
12895       allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT)
12896     };
12897   };
12898 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12899   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12900   {
12901     return SamplerCreateFlags( bit0 ) | bit1;
12902   }
12903 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12904   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12905   {
12906     return SamplerCreateFlags( bit0 ) & bit1;
12907   }
12908 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)12909   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12910   {
12911     return SamplerCreateFlags( bit0 ) ^ bit1;
12912   }
12913 
operator ~(SamplerCreateFlagBits bits)12914   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12915   {
12916     return ~( SamplerCreateFlags( bits ) );
12917   }
12918 
to_string(SamplerCreateFlags value)12919   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value  )
12920   {
12921 
12922     if ( !value ) return "{}";
12923     std::string result;
12924 
12925     if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
12926     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | ";
12927     return "{ " + result.substr(0, result.size() - 3) + " }";
12928   }
12929 
12930 
12931   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
12932 
to_string(SemaphoreCreateFlags)12933   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags  )
12934   {
12935 
12936     return "{}";
12937   }
12938 
12939 
12940   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
12941 
12942   template <> struct FlagTraits<SemaphoreImportFlagBits>
12943   {
12944     enum : VkFlags
12945     {
12946       allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary)
12947     };
12948   };
12949 
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)12950   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12951   {
12952     return SemaphoreImportFlags( bit0 ) | bit1;
12953   }
12954 
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)12955   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12956   {
12957     return SemaphoreImportFlags( bit0 ) & bit1;
12958   }
12959 
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)12960   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12961   {
12962     return SemaphoreImportFlags( bit0 ) ^ bit1;
12963   }
12964 
operator ~(SemaphoreImportFlagBits bits)12965   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
12966   {
12967     return ~( SemaphoreImportFlags( bits ) );
12968   }
12969 
12970   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
12971 
to_string(SemaphoreImportFlags value)12972   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value  )
12973   {
12974 
12975     if ( !value ) return "{}";
12976     std::string result;
12977 
12978     if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | ";
12979     return "{ " + result.substr(0, result.size() - 3) + " }";
12980   }
12981 
12982 
12983   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
12984 
12985   template <> struct FlagTraits<SemaphoreWaitFlagBits>
12986   {
12987     enum : VkFlags
12988     {
12989       allFlags = VkFlags(SemaphoreWaitFlagBits::eAny)
12990     };
12991   };
12992 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)12993   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12994   {
12995     return SemaphoreWaitFlags( bit0 ) | bit1;
12996   }
12997 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)12998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12999   {
13000     return SemaphoreWaitFlags( bit0 ) & bit1;
13001   }
13002 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)13003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13004   {
13005     return SemaphoreWaitFlags( bit0 ) ^ bit1;
13006   }
13007 
operator ~(SemaphoreWaitFlagBits bits)13008   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
13009   {
13010     return ~( SemaphoreWaitFlags( bits ) );
13011   }
13012 
13013   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
13014 
to_string(SemaphoreWaitFlags value)13015   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value  )
13016   {
13017 
13018     if ( !value ) return "{}";
13019     std::string result;
13020 
13021     if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | ";
13022     return "{ " + result.substr(0, result.size() - 3) + " }";
13023   }
13024 
13025 
13026   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
13027 
to_string(ShaderCorePropertiesFlagsAMD)13028   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD  )
13029   {
13030 
13031     return "{}";
13032   }
13033 
13034 
13035   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
13036 
to_string(ShaderModuleCreateFlags)13037   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags  )
13038   {
13039 
13040     return "{}";
13041   }
13042 
13043 
13044   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
13045 
13046   template <> struct FlagTraits<ShaderStageFlagBits>
13047   {
13048     enum : VkFlags
13049     {
13050       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)
13051     };
13052   };
13053 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13054   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13055   {
13056     return ShaderStageFlags( bit0 ) | bit1;
13057   }
13058 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13059   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13060   {
13061     return ShaderStageFlags( bit0 ) & bit1;
13062   }
13063 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13064   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13065   {
13066     return ShaderStageFlags( bit0 ) ^ bit1;
13067   }
13068 
operator ~(ShaderStageFlagBits bits)13069   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
13070   {
13071     return ~( ShaderStageFlags( bits ) );
13072   }
13073 
to_string(ShaderStageFlags value)13074   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value  )
13075   {
13076 
13077     if ( !value ) return "{}";
13078     std::string result;
13079 
13080     if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | ";
13081     if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | ";
13082     if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | ";
13083     if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | ";
13084     if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | ";
13085     if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | ";
13086     if ( value & ShaderStageFlagBits::eRaygenKHR ) result += "RaygenKHR | ";
13087     if ( value & ShaderStageFlagBits::eAnyHitKHR ) result += "AnyHitKHR | ";
13088     if ( value & ShaderStageFlagBits::eClosestHitKHR ) result += "ClosestHitKHR | ";
13089     if ( value & ShaderStageFlagBits::eMissKHR ) result += "MissKHR | ";
13090     if ( value & ShaderStageFlagBits::eIntersectionKHR ) result += "IntersectionKHR | ";
13091     if ( value & ShaderStageFlagBits::eCallableKHR ) result += "CallableKHR | ";
13092     if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
13093     if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | ";
13094     return "{ " + result.substr(0, result.size() - 3) + " }";
13095   }
13096 
13097 
13098   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
13099 
13100   template <> struct FlagTraits<SparseImageFormatFlagBits>
13101   {
13102     enum : VkFlags
13103     {
13104       allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize)
13105     };
13106   };
13107 
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13108   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13109   {
13110     return SparseImageFormatFlags( bit0 ) | bit1;
13111   }
13112 
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13113   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13114   {
13115     return SparseImageFormatFlags( bit0 ) & bit1;
13116   }
13117 
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13118   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13119   {
13120     return SparseImageFormatFlags( bit0 ) ^ bit1;
13121   }
13122 
operator ~(SparseImageFormatFlagBits bits)13123   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT
13124   {
13125     return ~( SparseImageFormatFlags( bits ) );
13126   }
13127 
to_string(SparseImageFormatFlags value)13128   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value  )
13129   {
13130 
13131     if ( !value ) return "{}";
13132     std::string result;
13133 
13134     if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
13135     if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
13136     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | ";
13137     return "{ " + result.substr(0, result.size() - 3) + " }";
13138   }
13139 
13140 
13141   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
13142 
13143   template <> struct FlagTraits<SparseMemoryBindFlagBits>
13144   {
13145     enum : VkFlags
13146     {
13147       allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata)
13148     };
13149   };
13150 
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13151   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13152   {
13153     return SparseMemoryBindFlags( bit0 ) | bit1;
13154   }
13155 
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13156   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13157   {
13158     return SparseMemoryBindFlags( bit0 ) & bit1;
13159   }
13160 
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13161   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13162   {
13163     return SparseMemoryBindFlags( bit0 ) ^ bit1;
13164   }
13165 
operator ~(SparseMemoryBindFlagBits bits)13166   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT
13167   {
13168     return ~( SparseMemoryBindFlags( bits ) );
13169   }
13170 
to_string(SparseMemoryBindFlags value)13171   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value  )
13172   {
13173 
13174     if ( !value ) return "{}";
13175     std::string result;
13176 
13177     if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | ";
13178     return "{ " + result.substr(0, result.size() - 3) + " }";
13179   }
13180 
13181 
13182   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
13183 
13184   template <> struct FlagTraits<StencilFaceFlagBits>
13185   {
13186     enum : VkFlags
13187     {
13188       allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eFrontAndBack)
13189     };
13190   };
13191 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13192   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13193   {
13194     return StencilFaceFlags( bit0 ) | bit1;
13195   }
13196 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13197   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13198   {
13199     return StencilFaceFlags( bit0 ) & bit1;
13200   }
13201 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13202   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13203   {
13204     return StencilFaceFlags( bit0 ) ^ bit1;
13205   }
13206 
operator ~(StencilFaceFlagBits bits)13207   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
13208   {
13209     return ~( StencilFaceFlags( bits ) );
13210   }
13211 
to_string(StencilFaceFlags value)13212   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value  )
13213   {
13214 
13215     if ( !value ) return "{}";
13216     std::string result;
13217 
13218     if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
13219     if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
13220     return "{ " + result.substr(0, result.size() - 3) + " }";
13221   }
13222 
13223 #ifdef VK_USE_PLATFORM_GGP
13224   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags
13225   {};
13226 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)13227   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
13228   {
13229     return "(void)";
13230   }
13231 
13232   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
13233 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)13234   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP  )
13235   {
13236 
13237     return "{}";
13238   }
13239 #endif /*VK_USE_PLATFORM_GGP*/
13240 
13241 
13242   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
13243 
13244   template <> struct FlagTraits<SubgroupFeatureFlagBits>
13245   {
13246     enum : VkFlags
13247     {
13248       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)
13249     };
13250   };
13251 
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13252   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13253   {
13254     return SubgroupFeatureFlags( bit0 ) | bit1;
13255   }
13256 
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13257   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13258   {
13259     return SubgroupFeatureFlags( bit0 ) & bit1;
13260   }
13261 
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13262   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13263   {
13264     return SubgroupFeatureFlags( bit0 ) ^ bit1;
13265   }
13266 
operator ~(SubgroupFeatureFlagBits bits)13267   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
13268   {
13269     return ~( SubgroupFeatureFlags( bits ) );
13270   }
13271 
to_string(SubgroupFeatureFlags value)13272   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value  )
13273   {
13274 
13275     if ( !value ) return "{}";
13276     std::string result;
13277 
13278     if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | ";
13279     if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | ";
13280     if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | ";
13281     if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | ";
13282     if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | ";
13283     if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | ";
13284     if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
13285     if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
13286     if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | ";
13287     return "{ " + result.substr(0, result.size() - 3) + " }";
13288   }
13289 
13290 
13291   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
13292 
13293   template <> struct FlagTraits<SubpassDescriptionFlagBits>
13294   {
13295     enum : VkFlags
13296     {
13297       allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX) | VkFlags(SubpassDescriptionFlagBits::eFragmentRegionQCOM) | VkFlags(SubpassDescriptionFlagBits::eShaderResolveQCOM)
13298     };
13299   };
13300 
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13301   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13302   {
13303     return SubpassDescriptionFlags( bit0 ) | bit1;
13304   }
13305 
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13306   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13307   {
13308     return SubpassDescriptionFlags( bit0 ) & bit1;
13309   }
13310 
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13311   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13312   {
13313     return SubpassDescriptionFlags( bit0 ) ^ bit1;
13314   }
13315 
operator ~(SubpassDescriptionFlagBits bits)13316   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
13317   {
13318     return ~( SubpassDescriptionFlags( bits ) );
13319   }
13320 
to_string(SubpassDescriptionFlags value)13321   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value  )
13322   {
13323 
13324     if ( !value ) return "{}";
13325     std::string result;
13326 
13327     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
13328     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | ";
13329     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) result += "FragmentRegionQCOM | ";
13330     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) result += "ShaderResolveQCOM | ";
13331     return "{ " + result.substr(0, result.size() - 3) + " }";
13332   }
13333 
13334 
13335   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
13336 
13337   template <> struct FlagTraits<SurfaceCounterFlagBitsEXT>
13338   {
13339     enum : VkFlags
13340     {
13341       allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank)
13342     };
13343   };
13344 
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13345   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13346   {
13347     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
13348   }
13349 
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13350   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13351   {
13352     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
13353   }
13354 
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13355   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13356   {
13357     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
13358   }
13359 
operator ~(SurfaceCounterFlagBitsEXT bits)13360   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13361   {
13362     return ~( SurfaceCounterFlagsEXT( bits ) );
13363   }
13364 
to_string(SurfaceCounterFlagsEXT value)13365   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value  )
13366   {
13367 
13368     if ( !value ) return "{}";
13369     std::string result;
13370 
13371     if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | ";
13372     return "{ " + result.substr(0, result.size() - 3) + " }";
13373   }
13374 
13375 
13376   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
13377 
13378   template <> struct FlagTraits<SurfaceTransformFlagBitsKHR>
13379   {
13380     enum : VkFlags
13381     {
13382       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)
13383     };
13384   };
13385 
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13386   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13387   {
13388     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
13389   }
13390 
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13391   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13392   {
13393     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
13394   }
13395 
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13396   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13397   {
13398     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
13399   }
13400 
operator ~(SurfaceTransformFlagBitsKHR bits)13401   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13402   {
13403     return ~( SurfaceTransformFlagsKHR( bits ) );
13404   }
13405 
to_string(SurfaceTransformFlagsKHR value)13406   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value  )
13407   {
13408 
13409     if ( !value ) return "{}";
13410     std::string result;
13411 
13412     if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | ";
13413     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | ";
13414     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | ";
13415     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | ";
13416     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | ";
13417     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | ";
13418     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
13419     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
13420     if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | ";
13421     return "{ " + result.substr(0, result.size() - 3) + " }";
13422   }
13423 
13424 
13425   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
13426 
13427   template <> struct FlagTraits<SwapchainCreateFlagBitsKHR>
13428   {
13429     enum : VkFlags
13430     {
13431       allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat)
13432     };
13433   };
13434 
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13435   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13436   {
13437     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
13438   }
13439 
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13440   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13441   {
13442     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
13443   }
13444 
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13445   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13446   {
13447     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
13448   }
13449 
operator ~(SwapchainCreateFlagBitsKHR bits)13450   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13451   {
13452     return ~( SwapchainCreateFlagsKHR( bits ) );
13453   }
13454 
to_string(SwapchainCreateFlagsKHR value)13455   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value  )
13456   {
13457 
13458     if ( !value ) return "{}";
13459     std::string result;
13460 
13461     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
13462     if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
13463     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | ";
13464     return "{ " + result.substr(0, result.size() - 3) + " }";
13465   }
13466 
13467 
13468   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
13469 
13470   template <> struct FlagTraits<ToolPurposeFlagBitsEXT>
13471   {
13472     enum : VkFlags
13473     {
13474       allFlags = VkFlags(ToolPurposeFlagBitsEXT::eValidation) | VkFlags(ToolPurposeFlagBitsEXT::eProfiling) | VkFlags(ToolPurposeFlagBitsEXT::eTracing) | VkFlags(ToolPurposeFlagBitsEXT::eAdditionalFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eModifyingFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eDebugReporting) | VkFlags(ToolPurposeFlagBitsEXT::eDebugMarkers)
13475     };
13476   };
13477 
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13478   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13479   {
13480     return ToolPurposeFlagsEXT( bit0 ) | bit1;
13481   }
13482 
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13483   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13484   {
13485     return ToolPurposeFlagsEXT( bit0 ) & bit1;
13486   }
13487 
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13488   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13489   {
13490     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
13491   }
13492 
operator ~(ToolPurposeFlagBitsEXT bits)13493   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13494   {
13495     return ~( ToolPurposeFlagsEXT( bits ) );
13496   }
13497 
to_string(ToolPurposeFlagsEXT value)13498   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value  )
13499   {
13500 
13501     if ( !value ) return "{}";
13502     std::string result;
13503 
13504     if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | ";
13505     if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | ";
13506     if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | ";
13507     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | ";
13508     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | ";
13509     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | ";
13510     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | ";
13511     return "{ " + result.substr(0, result.size() - 3) + " }";
13512   }
13513 
13514   enum class ValidationCacheCreateFlagBitsEXT : VkFlags
13515   {};
13516 
to_string(ValidationCacheCreateFlagBitsEXT)13517   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
13518   {
13519     return "(void)";
13520   }
13521 
13522   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
13523 
to_string(ValidationCacheCreateFlagsEXT)13524   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT  )
13525   {
13526 
13527     return "{}";
13528   }
13529 
13530 #ifdef VK_USE_PLATFORM_VI_NN
13531   enum class ViSurfaceCreateFlagBitsNN : VkFlags
13532   {};
13533 
to_string(ViSurfaceCreateFlagBitsNN)13534   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
13535   {
13536     return "(void)";
13537   }
13538 
13539   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
13540 
to_string(ViSurfaceCreateFlagsNN)13541   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN  )
13542   {
13543 
13544     return "{}";
13545   }
13546 #endif /*VK_USE_PLATFORM_VI_NN*/
13547 
13548 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
13549   enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags
13550   {};
13551 
to_string(WaylandSurfaceCreateFlagBitsKHR)13552   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
13553   {
13554     return "(void)";
13555   }
13556 
13557   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
13558 
to_string(WaylandSurfaceCreateFlagsKHR)13559   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR  )
13560   {
13561 
13562     return "{}";
13563   }
13564 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
13565 
13566 #ifdef VK_USE_PLATFORM_WIN32_KHR
13567   enum class Win32SurfaceCreateFlagBitsKHR : VkFlags
13568   {};
13569 
to_string(Win32SurfaceCreateFlagBitsKHR)13570   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
13571   {
13572     return "(void)";
13573   }
13574 
13575   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
13576 
to_string(Win32SurfaceCreateFlagsKHR)13577   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR  )
13578   {
13579 
13580     return "{}";
13581   }
13582 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13583 
13584 #ifdef VK_USE_PLATFORM_XCB_KHR
13585   enum class XcbSurfaceCreateFlagBitsKHR : VkFlags
13586   {};
13587 
to_string(XcbSurfaceCreateFlagBitsKHR)13588   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
13589   {
13590     return "(void)";
13591   }
13592 
13593   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
13594 
to_string(XcbSurfaceCreateFlagsKHR)13595   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR  )
13596   {
13597 
13598     return "{}";
13599   }
13600 #endif /*VK_USE_PLATFORM_XCB_KHR*/
13601 
13602 #ifdef VK_USE_PLATFORM_XLIB_KHR
13603   enum class XlibSurfaceCreateFlagBitsKHR : VkFlags
13604   {};
13605 
to_string(XlibSurfaceCreateFlagBitsKHR)13606   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
13607   {
13608     return "(void)";
13609   }
13610 
13611   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
13612 
to_string(XlibSurfaceCreateFlagsKHR)13613   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR  )
13614   {
13615 
13616     return "{}";
13617   }
13618 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
13619 } // namespace VULKAN_HPP_NAMESPACE
13620 
13621 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13622 namespace std
13623 {
13624   template <>
13625   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
13626   {};
13627 }
13628 #endif
13629 
13630 namespace VULKAN_HPP_NAMESPACE
13631 {
13632 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13633   class ErrorCategoryImpl : public std::error_category
13634   {
13635     public:
name() const13636     virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; }
message(int ev) const13637     virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }
13638   };
13639 
13640   class Error
13641   {
13642     public:
13643     Error() VULKAN_HPP_NOEXCEPT = default;
13644     Error(const Error&) VULKAN_HPP_NOEXCEPT = default;
13645     virtual ~Error() VULKAN_HPP_NOEXCEPT = default;
13646 
13647     virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0;
13648   };
13649 
13650   class LogicError : public Error, public std::logic_error
13651   {
13652     public:
LogicError(const std::string & what)13653     explicit LogicError( const std::string& what )
13654       : Error(), std::logic_error(what) {}
LogicError(char const * what)13655     explicit LogicError( char const * what )
13656       : Error(), std::logic_error(what) {}
13657 
what() const13658     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); }
13659   };
13660 
13661   class SystemError : public Error, public std::system_error
13662   {
13663     public:
SystemError(std::error_code ec)13664     SystemError( std::error_code ec )
13665       : Error(), std::system_error(ec) {}
SystemError(std::error_code ec,std::string const & what)13666     SystemError( std::error_code ec, std::string const& what )
13667       : Error(), std::system_error(ec, what) {}
SystemError(std::error_code ec,char const * what)13668     SystemError( std::error_code ec, char const * what )
13669       : Error(), std::system_error(ec, what) {}
SystemError(int ev,std::error_category const & ecat)13670     SystemError( int ev, std::error_category const& ecat )
13671       : Error(), std::system_error(ev, ecat) {}
SystemError(int ev,std::error_category const & ecat,std::string const & what)13672     SystemError( int ev, std::error_category const& ecat, std::string const& what)
13673       : Error(), std::system_error(ev, ecat, what) {}
SystemError(int ev,std::error_category const & ecat,char const * what)13674     SystemError( int ev, std::error_category const& ecat, char const * what)
13675       : Error(), std::system_error(ev, ecat, what) {}
13676 
what() const13677     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); }
13678   };
13679 
errorCategory()13680   VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT
13681   {
13682     static ErrorCategoryImpl instance;
13683     return instance;
13684   }
13685 
make_error_code(Result e)13686   VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT
13687   {
13688     return std::error_code(static_cast<int>(e), errorCategory());
13689   }
13690 
make_error_condition(Result e)13691   VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT
13692   {
13693     return std::error_condition(static_cast<int>(e), errorCategory());
13694   }
13695 
13696   class OutOfHostMemoryError : public SystemError
13697   {
13698   public:
OutOfHostMemoryError(std::string const & message)13699     OutOfHostMemoryError( std::string const& message )
13700       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
OutOfHostMemoryError(char const * message)13701     OutOfHostMemoryError( char const * message )
13702       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
13703   };
13704 
13705   class OutOfDeviceMemoryError : public SystemError
13706   {
13707   public:
OutOfDeviceMemoryError(std::string const & message)13708     OutOfDeviceMemoryError( std::string const& message )
13709       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
OutOfDeviceMemoryError(char const * message)13710     OutOfDeviceMemoryError( char const * message )
13711       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
13712   };
13713 
13714   class InitializationFailedError : public SystemError
13715   {
13716   public:
InitializationFailedError(std::string const & message)13717     InitializationFailedError( std::string const& message )
13718       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
InitializationFailedError(char const * message)13719     InitializationFailedError( char const * message )
13720       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
13721   };
13722 
13723   class DeviceLostError : public SystemError
13724   {
13725   public:
DeviceLostError(std::string const & message)13726     DeviceLostError( std::string const& message )
13727       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
DeviceLostError(char const * message)13728     DeviceLostError( char const * message )
13729       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
13730   };
13731 
13732   class MemoryMapFailedError : public SystemError
13733   {
13734   public:
MemoryMapFailedError(std::string const & message)13735     MemoryMapFailedError( std::string const& message )
13736       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
MemoryMapFailedError(char const * message)13737     MemoryMapFailedError( char const * message )
13738       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
13739   };
13740 
13741   class LayerNotPresentError : public SystemError
13742   {
13743   public:
LayerNotPresentError(std::string const & message)13744     LayerNotPresentError( std::string const& message )
13745       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
LayerNotPresentError(char const * message)13746     LayerNotPresentError( char const * message )
13747       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
13748   };
13749 
13750   class ExtensionNotPresentError : public SystemError
13751   {
13752   public:
ExtensionNotPresentError(std::string const & message)13753     ExtensionNotPresentError( std::string const& message )
13754       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
ExtensionNotPresentError(char const * message)13755     ExtensionNotPresentError( char const * message )
13756       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
13757   };
13758 
13759   class FeatureNotPresentError : public SystemError
13760   {
13761   public:
FeatureNotPresentError(std::string const & message)13762     FeatureNotPresentError( std::string const& message )
13763       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
FeatureNotPresentError(char const * message)13764     FeatureNotPresentError( char const * message )
13765       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
13766   };
13767 
13768   class IncompatibleDriverError : public SystemError
13769   {
13770   public:
IncompatibleDriverError(std::string const & message)13771     IncompatibleDriverError( std::string const& message )
13772       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
IncompatibleDriverError(char const * message)13773     IncompatibleDriverError( char const * message )
13774       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
13775   };
13776 
13777   class TooManyObjectsError : public SystemError
13778   {
13779   public:
TooManyObjectsError(std::string const & message)13780     TooManyObjectsError( std::string const& message )
13781       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
TooManyObjectsError(char const * message)13782     TooManyObjectsError( char const * message )
13783       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
13784   };
13785 
13786   class FormatNotSupportedError : public SystemError
13787   {
13788   public:
FormatNotSupportedError(std::string const & message)13789     FormatNotSupportedError( std::string const& message )
13790       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
FormatNotSupportedError(char const * message)13791     FormatNotSupportedError( char const * message )
13792       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
13793   };
13794 
13795   class FragmentedPoolError : public SystemError
13796   {
13797   public:
FragmentedPoolError(std::string const & message)13798     FragmentedPoolError( std::string const& message )
13799       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
FragmentedPoolError(char const * message)13800     FragmentedPoolError( char const * message )
13801       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
13802   };
13803 
13804   class UnknownError : public SystemError
13805   {
13806   public:
UnknownError(std::string const & message)13807     UnknownError( std::string const& message )
13808       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
UnknownError(char const * message)13809     UnknownError( char const * message )
13810       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
13811   };
13812 
13813   class OutOfPoolMemoryError : public SystemError
13814   {
13815   public:
OutOfPoolMemoryError(std::string const & message)13816     OutOfPoolMemoryError( std::string const& message )
13817       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
OutOfPoolMemoryError(char const * message)13818     OutOfPoolMemoryError( char const * message )
13819       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
13820   };
13821 
13822   class InvalidExternalHandleError : public SystemError
13823   {
13824   public:
InvalidExternalHandleError(std::string const & message)13825     InvalidExternalHandleError( std::string const& message )
13826       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
InvalidExternalHandleError(char const * message)13827     InvalidExternalHandleError( char const * message )
13828       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
13829   };
13830 
13831   class FragmentationError : public SystemError
13832   {
13833   public:
FragmentationError(std::string const & message)13834     FragmentationError( std::string const& message )
13835       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
FragmentationError(char const * message)13836     FragmentationError( char const * message )
13837       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
13838   };
13839 
13840   class InvalidOpaqueCaptureAddressError : public SystemError
13841   {
13842   public:
InvalidOpaqueCaptureAddressError(std::string const & message)13843     InvalidOpaqueCaptureAddressError( std::string const& message )
13844       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
InvalidOpaqueCaptureAddressError(char const * message)13845     InvalidOpaqueCaptureAddressError( char const * message )
13846       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
13847   };
13848 
13849   class SurfaceLostKHRError : public SystemError
13850   {
13851   public:
SurfaceLostKHRError(std::string const & message)13852     SurfaceLostKHRError( std::string const& message )
13853       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
SurfaceLostKHRError(char const * message)13854     SurfaceLostKHRError( char const * message )
13855       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
13856   };
13857 
13858   class NativeWindowInUseKHRError : public SystemError
13859   {
13860   public:
NativeWindowInUseKHRError(std::string const & message)13861     NativeWindowInUseKHRError( std::string const& message )
13862       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
NativeWindowInUseKHRError(char const * message)13863     NativeWindowInUseKHRError( char const * message )
13864       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
13865   };
13866 
13867   class OutOfDateKHRError : public SystemError
13868   {
13869   public:
OutOfDateKHRError(std::string const & message)13870     OutOfDateKHRError( std::string const& message )
13871       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
OutOfDateKHRError(char const * message)13872     OutOfDateKHRError( char const * message )
13873       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
13874   };
13875 
13876   class IncompatibleDisplayKHRError : public SystemError
13877   {
13878   public:
IncompatibleDisplayKHRError(std::string const & message)13879     IncompatibleDisplayKHRError( std::string const& message )
13880       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
IncompatibleDisplayKHRError(char const * message)13881     IncompatibleDisplayKHRError( char const * message )
13882       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
13883   };
13884 
13885   class ValidationFailedEXTError : public SystemError
13886   {
13887   public:
ValidationFailedEXTError(std::string const & message)13888     ValidationFailedEXTError( std::string const& message )
13889       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
ValidationFailedEXTError(char const * message)13890     ValidationFailedEXTError( char const * message )
13891       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
13892   };
13893 
13894   class InvalidShaderNVError : public SystemError
13895   {
13896   public:
InvalidShaderNVError(std::string const & message)13897     InvalidShaderNVError( std::string const& message )
13898       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
InvalidShaderNVError(char const * message)13899     InvalidShaderNVError( char const * message )
13900       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
13901   };
13902 
13903   class IncompatibleVersionKHRError : public SystemError
13904   {
13905   public:
IncompatibleVersionKHRError(std::string const & message)13906     IncompatibleVersionKHRError( std::string const& message )
13907       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
IncompatibleVersionKHRError(char const * message)13908     IncompatibleVersionKHRError( char const * message )
13909       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
13910   };
13911 
13912   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
13913   {
13914   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)13915     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message )
13916       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)13917     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
13918       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
13919   };
13920 
13921   class NotPermittedEXTError : public SystemError
13922   {
13923   public:
NotPermittedEXTError(std::string const & message)13924     NotPermittedEXTError( std::string const& message )
13925       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
NotPermittedEXTError(char const * message)13926     NotPermittedEXTError( char const * message )
13927       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
13928   };
13929 
13930   class FullScreenExclusiveModeLostEXTError : public SystemError
13931   {
13932   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)13933     FullScreenExclusiveModeLostEXTError( std::string const& message )
13934       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
FullScreenExclusiveModeLostEXTError(char const * message)13935     FullScreenExclusiveModeLostEXTError( char const * message )
13936       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
13937   };
13938 
13939 
throwResultException(Result result,char const * message)13940   [[noreturn]] static void throwResultException( Result result, char const * message )
13941   {
13942     switch ( result )
13943     {
13944       case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
13945       case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
13946       case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
13947       case Result::eErrorDeviceLost: throw DeviceLostError( message );
13948       case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
13949       case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
13950       case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
13951       case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
13952       case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
13953       case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
13954       case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
13955       case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
13956       case Result::eErrorUnknown: throw UnknownError( message );
13957       case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
13958       case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
13959       case Result::eErrorFragmentation: throw FragmentationError( message );
13960       case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
13961       case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
13962       case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
13963       case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
13964       case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
13965       case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
13966       case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
13967       case Result::eErrorIncompatibleVersionKHR: throw IncompatibleVersionKHRError( message );
13968       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
13969       case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
13970       case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
13971       default: throw SystemError( make_error_code( result ) );
13972     }
13973   }
13974 #endif
13975 
ignore(T const &)13976   template <typename T> void ignore(T const&) VULKAN_HPP_NOEXCEPT {}
13977 
13978   template <typename T>
13979   struct ResultValue
13980   {
13981 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue13982     ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v)))
13983 #else
13984     ResultValue( Result r, T & v )
13985 #endif
13986       : result( r )
13987       , value( v )
13988     {}
13989 
13990 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue13991     ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v))))
13992 #else
13993     ResultValue( Result r, T && v )
13994 #endif
13995       : result( r )
13996       , value( std::move( v ) )
13997     {}
13998 
13999     Result  result;
14000     T       value;
14001 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue14002     operator std::tuple<Result&, T&>() VULKAN_HPP_NOEXCEPT { return std::tuple<Result&, T&>(result, value); }
14003 
14004 #if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
14005     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::ResultValue14006     operator T const& () const & VULKAN_HPP_NOEXCEPT
14007     {
14008       return value;
14009     }
14010 
14011     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&VULKAN_HPP_NAMESPACE::ResultValue14012     operator T& () & VULKAN_HPP_NOEXCEPT
14013     {
14014       return value;
14015     }
14016 
14017     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::ResultValue14018     operator T const&& () const && VULKAN_HPP_NOEXCEPT
14019     {
14020       return std::move( value );
14021     }
14022 
14023     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&&VULKAN_HPP_NAMESPACE::ResultValue14024     operator T&& () && VULKAN_HPP_NOEXCEPT
14025     {
14026       return std::move( value );
14027     }
14028 #endif
14029   };
14030 
14031 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
14032   template <typename Type, typename Dispatch>
14033   struct ResultValue<UniqueHandle<Type,Dispatch>>
14034   {
14035 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14036     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v) VULKAN_HPP_NOEXCEPT
14037 #else
14038     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v)
14039 #endif
14040       : result(r)
14041       , value(std::move(v))
14042     {}
14043 
asTupleVULKAN_HPP_NAMESPACE::ResultValue14044     std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
14045     {
14046       return std::make_tuple( result, std::move( value ) );
14047     }
14048 
14049 #  if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
14050     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::ResultValue14051     operator UniqueHandle<Type, Dispatch>& () & VULKAN_HPP_NOEXCEPT
14052     {
14053       return value;
14054     }
14055 
14056     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::ResultValue14057     operator UniqueHandle<Type, Dispatch>() VULKAN_HPP_NOEXCEPT
14058     {
14059       return std::move(value);
14060     }
14061 #  endif
14062 
14063     Result                        result;
14064     UniqueHandle<Type, Dispatch>  value;
14065   };
14066 
14067   template <typename Type, typename Dispatch>
14068   struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
14069   {
14070 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14071     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
14072 #  else
14073     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
14074 #  endif
14075       : result( r )
14076       , value( std::move( v ) )
14077     {}
14078 
14079     Result                                    result;
14080     std::vector<UniqueHandle<Type, Dispatch>> value;
14081 
operator std::tuple<Result&,std::vector<UniqueHandle<Type,Dispatch>>&>VULKAN_HPP_NAMESPACE::ResultValue14082     operator std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>() VULKAN_HPP_NOEXCEPT
14083     {
14084       return std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>( result, value );
14085     }
14086   };
14087 #endif
14088 
14089   template <typename T>
14090   struct ResultValueType
14091   {
14092 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14093     typedef ResultValue<T>  type;
14094 #else
14095     typedef T               type;
14096 #endif
14097   };
14098 
14099   template <>
14100   struct ResultValueType<void>
14101   {
14102 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14103     typedef Result type;
14104 #else
14105     typedef void   type;
14106 #endif
14107   };
14108 
createResultValue(Result result,char const * message)14109   VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
14110   {
14111 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14112     ignore(message);
14113     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14114     return result;
14115 #else
14116     if ( result != Result::eSuccess )
14117     {
14118       throwResultException( result, message );
14119     }
14120 #endif
14121   }
14122 
14123   template <typename T>
createResultValue(Result result,T & data,char const * message)14124   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
14125   {
14126 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14127     ignore(message);
14128     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14129     return ResultValue<T>( result, std::move( data ) );
14130 #else
14131     if ( result != Result::eSuccess )
14132     {
14133       throwResultException( result, message );
14134     }
14135     return std::move( data );
14136 #endif
14137   }
14138 
createResultValue(Result result,char const * message,std::initializer_list<Result> successCodes)14139   VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list<Result> successCodes )
14140   {
14141 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14142     ignore(message);
14143     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14144 #else
14145     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14146     {
14147       throwResultException( result, message );
14148     }
14149 #endif
14150     return result;
14151   }
14152 
14153   template <typename T>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes)14154   VULKAN_HPP_INLINE ResultValue<T> createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
14155   {
14156 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14157     ignore(message);
14158     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14159 #else
14160     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14161     {
14162       throwResultException( result, message );
14163     }
14164 #endif
14165     return ResultValue<T>( result, data );
14166   }
14167 
14168 #ifndef VULKAN_HPP_NO_SMART_HANDLE
14169   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,typename UniqueHandleTraits<T,D>::deleter const & deleter)14170   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter )
14171   {
14172 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14173     ignore(message);
14174     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14175     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
14176 #else
14177     if ( result != Result::eSuccess )
14178     {
14179       throwResultException( result, message );
14180     }
14181     return UniqueHandle<T,D>(data, deleter);
14182 #endif
14183   }
14184 
14185   template <typename T, typename D>
14186   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)14187                     createResultValue( Result                                             result,
14188                                        T &                                                data,
14189                                        char const *                                       message,
14190                                        std::initializer_list<Result>                      successCodes,
14191                                        typename UniqueHandleTraits<T, D>::deleter const & deleter )
14192   {
14193 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14194     ignore( message );
14195     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14196 #  else
14197     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14198     {
14199       throwResultException( result, message );
14200     }
14201 #  endif
14202     return ResultValue<UniqueHandle<T, D>>( result, UniqueHandle<T, D>( data, deleter ) );
14203   }
14204 
14205   template <typename T, typename D>
14206   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<T, D>>>::type
createResultValue(Result result,std::vector<UniqueHandle<T,D>> && data,char const * message)14207     createResultValue( Result result, std::vector<UniqueHandle<T, D>> && data, char const * message )
14208   {
14209 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14210     ignore( message );
14211     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14212     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
14213 #  else
14214     if ( result != Result::eSuccess )
14215     {
14216       throwResultException( result, message );
14217     }
14218     return std::move( data );
14219 #  endif
14220   }
14221 
14222   template <typename T, typename D>
14223   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)14224                     createResultValue( Result                             result,
14225                                        std::vector<UniqueHandle<T, D>> && data,
14226                                        char const *                       message,
14227                                        std::initializer_list<Result>      successCodes )
14228   {
14229 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14230     ignore( message );
14231     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14232 #  else
14233     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14234     {
14235       throwResultException( result, message );
14236     }
14237 #  endif
14238     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
14239   }
14240 #endif
14241 
14242   struct AabbPositionsKHR
14243   {
14244 
14245 
14246 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR14247     VULKAN_HPP_CONSTEXPR AabbPositionsKHR(float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {}) VULKAN_HPP_NOEXCEPT
14248     : minX( minX_ ), minY( minY_ ), minZ( minZ_ ), maxX( maxX_ ), maxY( maxY_ ), maxZ( maxZ_ )
14249     {}
14250 
14251     VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14252 
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR14253     AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14254     {
14255       *this = rhs;
14256     }
14257 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14258 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR14259     AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14260     {
14261       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AabbPositionsKHR const *>( &rhs );
14262       return *this;
14263     }
14264 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR14265     AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14266     {
14267       memcpy( static_cast<void *>( this ), &rhs, sizeof( AabbPositionsKHR ) );
14268       return *this;
14269     }
14270 
setMinXVULKAN_HPP_NAMESPACE::AabbPositionsKHR14271     AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
14272     {
14273       minX = minX_;
14274       return *this;
14275     }
14276 
setMinYVULKAN_HPP_NAMESPACE::AabbPositionsKHR14277     AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT
14278     {
14279       minY = minY_;
14280       return *this;
14281     }
14282 
setMinZVULKAN_HPP_NAMESPACE::AabbPositionsKHR14283     AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT
14284     {
14285       minZ = minZ_;
14286       return *this;
14287     }
14288 
setMaxXVULKAN_HPP_NAMESPACE::AabbPositionsKHR14289     AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT
14290     {
14291       maxX = maxX_;
14292       return *this;
14293     }
14294 
setMaxYVULKAN_HPP_NAMESPACE::AabbPositionsKHR14295     AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT
14296     {
14297       maxY = maxY_;
14298       return *this;
14299     }
14300 
setMaxZVULKAN_HPP_NAMESPACE::AabbPositionsKHR14301     AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT
14302     {
14303       maxZ = maxZ_;
14304       return *this;
14305     }
14306 
14307 
operator VkAabbPositionsKHR const&VULKAN_HPP_NAMESPACE::AabbPositionsKHR14308     operator VkAabbPositionsKHR const&() const VULKAN_HPP_NOEXCEPT
14309     {
14310       return *reinterpret_cast<const VkAabbPositionsKHR*>( this );
14311     }
14312 
operator VkAabbPositionsKHR&VULKAN_HPP_NAMESPACE::AabbPositionsKHR14313     operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
14314     {
14315       return *reinterpret_cast<VkAabbPositionsKHR*>( this );
14316     }
14317 
14318 
14319 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14320     auto operator<=>( AabbPositionsKHR const& ) const = default;
14321 #else
operator ==VULKAN_HPP_NAMESPACE::AabbPositionsKHR14322     bool operator==( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
14323     {
14324       return ( minX == rhs.minX )
14325           && ( minY == rhs.minY )
14326           && ( minZ == rhs.minZ )
14327           && ( maxX == rhs.maxX )
14328           && ( maxY == rhs.maxY )
14329           && ( maxZ == rhs.maxZ );
14330     }
14331 
operator !=VULKAN_HPP_NAMESPACE::AabbPositionsKHR14332     bool operator!=( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
14333     {
14334       return !operator==( rhs );
14335     }
14336 #endif
14337 
14338 
14339 
14340   public:
14341     float minX = {};
14342     float minY = {};
14343     float minZ = {};
14344     float maxX = {};
14345     float maxY = {};
14346     float maxZ = {};
14347 
14348   };
14349   static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), "struct and wrapper have different size!" );
14350   static_assert( std::is_standard_layout<AabbPositionsKHR>::value, "struct wrapper is not a standard layout!" );
14351   using AabbPositionsNV = AabbPositionsKHR;
14352 
14353   class AccelerationStructureKHR
14354   {
14355   public:
14356     using CType = VkAccelerationStructureKHR;
14357 
14358     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR;
14359     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
14360 
14361   public:
AccelerationStructureKHR()14362     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() VULKAN_HPP_NOEXCEPT
14363       : m_accelerationStructureKHR(VK_NULL_HANDLE)
14364     {}
14365 
AccelerationStructureKHR(std::nullptr_t)14366     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14367       : m_accelerationStructureKHR(VK_NULL_HANDLE)
14368     {}
14369 
AccelerationStructureKHR(VkAccelerationStructureKHR accelerationStructureKHR)14370     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT
14371       : m_accelerationStructureKHR( accelerationStructureKHR )
14372     {}
14373 
14374 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkAccelerationStructureKHR accelerationStructureKHR)14375     AccelerationStructureKHR & operator=(VkAccelerationStructureKHR accelerationStructureKHR) VULKAN_HPP_NOEXCEPT
14376     {
14377       m_accelerationStructureKHR = accelerationStructureKHR;
14378       return *this;
14379     }
14380 #endif
14381 
operator =(std::nullptr_t)14382     AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14383     {
14384       m_accelerationStructureKHR = VK_NULL_HANDLE;
14385       return *this;
14386     }
14387 
14388 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14389     auto operator<=>( AccelerationStructureKHR const& ) const = default;
14390 #else
operator ==(AccelerationStructureKHR const & rhs) const14391     bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14392     {
14393       return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR;
14394     }
14395 
operator !=(AccelerationStructureKHR const & rhs) const14396     bool operator!=(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14397     {
14398       return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR;
14399     }
14400 
operator <(AccelerationStructureKHR const & rhs) const14401     bool operator<(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14402     {
14403       return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR;
14404     }
14405 #endif
14406 
operator VkAccelerationStructureKHR() const14407     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT
14408     {
14409       return m_accelerationStructureKHR;
14410     }
14411 
operator bool() const14412     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14413     {
14414       return m_accelerationStructureKHR != VK_NULL_HANDLE;
14415     }
14416 
operator !() const14417     bool operator!() const VULKAN_HPP_NOEXCEPT
14418     {
14419       return m_accelerationStructureKHR == VK_NULL_HANDLE;
14420     }
14421 
14422   private:
14423     VkAccelerationStructureKHR m_accelerationStructureKHR;
14424   };
14425   static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), "handle and wrapper have different size!" );
14426 
14427   template <>
14428   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eAccelerationStructureKHR>
14429   {
14430     using type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14431   };
14432 
14433   template <>
14434   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR>
14435   {
14436     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14437   };
14438 
14439 
14440   template <>
14441   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR>
14442   {
14443     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14444   };
14445 
14446 
14447   template <>
14448   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
14449   {
14450     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
14451   };
14452   using AccelerationStructureNV = AccelerationStructureKHR;
14453 
14454 #ifdef VK_ENABLE_BETA_EXTENSIONS
14455   union DeviceOrHostAddressConstKHR
14456   {
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)14457     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const& rhs ) VULKAN_HPP_NOEXCEPT
14458     {
14459       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
14460     }
14461 
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )14462     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
14463       : deviceAddress( deviceAddress_ )
14464     {}
14465 
DeviceOrHostAddressConstKHR(const void * hostAddress_)14466     DeviceOrHostAddressConstKHR( const void* hostAddress_ )
14467       : hostAddress( hostAddress_ )
14468     {}
14469 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)14470     DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
14471     {
14472       deviceAddress = deviceAddress_;
14473       return *this;
14474     }
14475 
setHostAddress(const void * hostAddress_)14476     DeviceOrHostAddressConstKHR & setHostAddress( const void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
14477     {
14478       hostAddress = hostAddress_;
14479       return *this;
14480     }
14481 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)14482     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14483     {
14484       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
14485       return *this;
14486     }
14487 
operator VkDeviceOrHostAddressConstKHR const&() const14488     operator VkDeviceOrHostAddressConstKHR const&() const
14489     {
14490       return *reinterpret_cast<const VkDeviceOrHostAddressConstKHR*>(this);
14491     }
14492 
operator VkDeviceOrHostAddressConstKHR&()14493     operator VkDeviceOrHostAddressConstKHR &()
14494     {
14495       return *reinterpret_cast<VkDeviceOrHostAddressConstKHR*>(this);
14496     }
14497 
14498 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
14499     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
14500     const void* hostAddress;
14501 #else
14502     VkDeviceAddress deviceAddress;
14503     const void* hostAddress;
14504 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
14505   };
14506 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14507 
14508 #ifdef VK_ENABLE_BETA_EXTENSIONS
14509   struct AccelerationStructureGeometryTrianglesDataKHR
14510   {
14511     static const bool allowDuplicate = false;
14512     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
14513 
14514 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14515     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
14516     : vertexFormat( vertexFormat_ ), vertexData( vertexData_ ), vertexStride( vertexStride_ ), indexType( indexType_ ), indexData( indexData_ ), transformData( transformData_ )
14517     {}
14518 
14519     AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14520 
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14521     AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14522     {
14523       *this = rhs;
14524     }
14525 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14526 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14527     AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14528     {
14529       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs );
14530       return *this;
14531     }
14532 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14533     AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14534     {
14535       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryTrianglesDataKHR ) );
14536       return *this;
14537     }
14538 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14539     AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14540     {
14541       pNext = pNext_;
14542       return *this;
14543     }
14544 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14545     AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
14546     {
14547       vertexFormat = vertexFormat_;
14548       return *this;
14549     }
14550 
setVertexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14551     AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
14552     {
14553       vertexData = vertexData_;
14554       return *this;
14555     }
14556 
setVertexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14557     AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
14558     {
14559       vertexStride = vertexStride_;
14560       return *this;
14561     }
14562 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14563     AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
14564     {
14565       indexType = indexType_;
14566       return *this;
14567     }
14568 
setIndexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14569     AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
14570     {
14571       indexData = indexData_;
14572       return *this;
14573     }
14574 
setTransformDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14575     AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
14576     {
14577       transformData = transformData_;
14578       return *this;
14579     }
14580 
14581 
operator VkAccelerationStructureGeometryTrianglesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14582     operator VkAccelerationStructureGeometryTrianglesDataKHR const&() const VULKAN_HPP_NOEXCEPT
14583     {
14584       return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
14585     }
14586 
operator VkAccelerationStructureGeometryTrianglesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14587     operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
14588     {
14589       return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
14590     }
14591 
14592 
14593 
14594 
14595   public:
14596     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
14597     const void* pNext = {};
14598     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
14599     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
14600     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
14601     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
14602     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {};
14603     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {};
14604 
14605   };
14606   static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), "struct and wrapper have different size!" );
14607   static_assert( std::is_standard_layout<AccelerationStructureGeometryTrianglesDataKHR>::value, "struct wrapper is not a standard layout!" );
14608 
14609   template <>
14610   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryTrianglesDataKHR>
14611   {
14612     using Type = AccelerationStructureGeometryTrianglesDataKHR;
14613   };
14614 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14615 
14616 #ifdef VK_ENABLE_BETA_EXTENSIONS
14617   struct AccelerationStructureGeometryAabbsDataKHR
14618   {
14619     static const bool allowDuplicate = false;
14620     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
14621 
14622 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14623     AccelerationStructureGeometryAabbsDataKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}) VULKAN_HPP_NOEXCEPT
14624     : data( data_ ), stride( stride_ )
14625     {}
14626 
14627     AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14628 
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14629     AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14630     {
14631       *this = rhs;
14632     }
14633 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14634 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14635     AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14636     {
14637       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const *>( &rhs );
14638       return *this;
14639     }
14640 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14641     AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14642     {
14643       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryAabbsDataKHR ) );
14644       return *this;
14645     }
14646 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14647     AccelerationStructureGeometryAabbsDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14648     {
14649       pNext = pNext_;
14650       return *this;
14651     }
14652 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14653     AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
14654     {
14655       data = data_;
14656       return *this;
14657     }
14658 
setStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14659     AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
14660     {
14661       stride = stride_;
14662       return *this;
14663     }
14664 
14665 
operator VkAccelerationStructureGeometryAabbsDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14666     operator VkAccelerationStructureGeometryAabbsDataKHR const&() const VULKAN_HPP_NOEXCEPT
14667     {
14668       return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR*>( this );
14669     }
14670 
operator VkAccelerationStructureGeometryAabbsDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14671     operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
14672     {
14673       return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR*>( this );
14674     }
14675 
14676 
14677 
14678 
14679   public:
14680     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
14681     const void* pNext = {};
14682     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
14683     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
14684 
14685   };
14686   static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), "struct and wrapper have different size!" );
14687   static_assert( std::is_standard_layout<AccelerationStructureGeometryAabbsDataKHR>::value, "struct wrapper is not a standard layout!" );
14688 
14689   template <>
14690   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryAabbsDataKHR>
14691   {
14692     using Type = AccelerationStructureGeometryAabbsDataKHR;
14693   };
14694 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14695 
14696 #ifdef VK_ENABLE_BETA_EXTENSIONS
14697   struct AccelerationStructureGeometryInstancesDataKHR
14698   {
14699     static const bool allowDuplicate = false;
14700     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
14701 
14702 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14703     AccelerationStructureGeometryInstancesDataKHR(VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}) VULKAN_HPP_NOEXCEPT
14704     : arrayOfPointers( arrayOfPointers_ ), data( data_ )
14705     {}
14706 
14707     AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14708 
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14709     AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14710     {
14711       *this = rhs;
14712     }
14713 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14714 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14715     AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14716     {
14717       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const *>( &rhs );
14718       return *this;
14719     }
14720 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14721     AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14722     {
14723       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryInstancesDataKHR ) );
14724       return *this;
14725     }
14726 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14727     AccelerationStructureGeometryInstancesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14728     {
14729       pNext = pNext_;
14730       return *this;
14731     }
14732 
setArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14733     AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
14734     {
14735       arrayOfPointers = arrayOfPointers_;
14736       return *this;
14737     }
14738 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14739     AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
14740     {
14741       data = data_;
14742       return *this;
14743     }
14744 
14745 
operator VkAccelerationStructureGeometryInstancesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14746     operator VkAccelerationStructureGeometryInstancesDataKHR const&() const VULKAN_HPP_NOEXCEPT
14747     {
14748       return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR*>( this );
14749     }
14750 
operator VkAccelerationStructureGeometryInstancesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14751     operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
14752     {
14753       return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR*>( this );
14754     }
14755 
14756 
14757 
14758 
14759   public:
14760     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
14761     const void* pNext = {};
14762     VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {};
14763     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
14764 
14765   };
14766   static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), "struct and wrapper have different size!" );
14767   static_assert( std::is_standard_layout<AccelerationStructureGeometryInstancesDataKHR>::value, "struct wrapper is not a standard layout!" );
14768 
14769   template <>
14770   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryInstancesDataKHR>
14771   {
14772     using Type = AccelerationStructureGeometryInstancesDataKHR;
14773   };
14774 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14775 
14776 #ifdef VK_ENABLE_BETA_EXTENSIONS
14777   union AccelerationStructureGeometryDataKHR
14778   {
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)14779     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const& rhs ) VULKAN_HPP_NOEXCEPT
14780     {
14781       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
14782     }
14783 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_={} )14784     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} )
14785       : triangles( triangles_ )
14786     {}
14787 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_)14788     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ )
14789       : aabbs( aabbs_ )
14790     {}
14791 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_)14792     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
14793       : instances( instances_ )
14794     {}
14795 
setTriangles(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_)14796     AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
14797     {
14798       triangles = triangles_;
14799       return *this;
14800     }
14801 
setAabbs(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_)14802     AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
14803     {
14804       aabbs = aabbs_;
14805       return *this;
14806     }
14807 
setInstances(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_)14808     AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
14809     {
14810       instances = instances_;
14811       return *this;
14812     }
14813 
operator =(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)14814     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14815     {
14816       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
14817       return *this;
14818     }
14819 
operator VkAccelerationStructureGeometryDataKHR const&() const14820     operator VkAccelerationStructureGeometryDataKHR const&() const
14821     {
14822       return *reinterpret_cast<const VkAccelerationStructureGeometryDataKHR*>(this);
14823     }
14824 
operator VkAccelerationStructureGeometryDataKHR&()14825     operator VkAccelerationStructureGeometryDataKHR &()
14826     {
14827       return *reinterpret_cast<VkAccelerationStructureGeometryDataKHR*>(this);
14828     }
14829 
14830 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
14831     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles;
14832     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs;
14833     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances;
14834 #else
14835     VkAccelerationStructureGeometryTrianglesDataKHR triangles;
14836     VkAccelerationStructureGeometryAabbsDataKHR aabbs;
14837     VkAccelerationStructureGeometryInstancesDataKHR instances;
14838 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
14839   };
14840 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14841 
14842 #ifdef VK_ENABLE_BETA_EXTENSIONS
14843   struct AccelerationStructureGeometryKHR
14844   {
14845     static const bool allowDuplicate = false;
14846     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR;
14847 
14848 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14849     AccelerationStructureGeometryKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT
14850     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
14851     {}
14852 
14853     AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14854 
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14855     AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14856     {
14857       *this = rhs;
14858     }
14859 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14860 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14861     AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14862     {
14863       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR const *>( &rhs );
14864       return *this;
14865     }
14866 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14867     AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14868     {
14869       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryKHR ) );
14870       return *this;
14871     }
14872 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14873     AccelerationStructureGeometryKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14874     {
14875       pNext = pNext_;
14876       return *this;
14877     }
14878 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14879     AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
14880     {
14881       geometryType = geometryType_;
14882       return *this;
14883     }
14884 
setGeometryVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14885     AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
14886     {
14887       geometry = geometry_;
14888       return *this;
14889     }
14890 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14891     AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
14892     {
14893       flags = flags_;
14894       return *this;
14895     }
14896 
14897 
operator VkAccelerationStructureGeometryKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14898     operator VkAccelerationStructureGeometryKHR const&() const VULKAN_HPP_NOEXCEPT
14899     {
14900       return *reinterpret_cast<const VkAccelerationStructureGeometryKHR*>( this );
14901     }
14902 
operator VkAccelerationStructureGeometryKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR14903     operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
14904     {
14905       return *reinterpret_cast<VkAccelerationStructureGeometryKHR*>( this );
14906     }
14907 
14908 
14909 
14910 
14911   public:
14912     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR;
14913     const void* pNext = {};
14914     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
14915     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {};
14916     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
14917 
14918   };
14919   static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), "struct and wrapper have different size!" );
14920   static_assert( std::is_standard_layout<AccelerationStructureGeometryKHR>::value, "struct wrapper is not a standard layout!" );
14921 
14922   template <>
14923   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryKHR>
14924   {
14925     using Type = AccelerationStructureGeometryKHR;
14926   };
14927 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14928 
14929 #ifdef VK_ENABLE_BETA_EXTENSIONS
14930   union DeviceOrHostAddressKHR
14931   {
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)14932     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const& rhs ) VULKAN_HPP_NOEXCEPT
14933     {
14934       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
14935     }
14936 
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )14937     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
14938       : deviceAddress( deviceAddress_ )
14939     {}
14940 
DeviceOrHostAddressKHR(void * hostAddress_)14941     DeviceOrHostAddressKHR( void* hostAddress_ )
14942       : hostAddress( hostAddress_ )
14943     {}
14944 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)14945     DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
14946     {
14947       deviceAddress = deviceAddress_;
14948       return *this;
14949     }
14950 
setHostAddress(void * hostAddress_)14951     DeviceOrHostAddressKHR & setHostAddress( void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
14952     {
14953       hostAddress = hostAddress_;
14954       return *this;
14955     }
14956 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)14957     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14958     {
14959       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
14960       return *this;
14961     }
14962 
operator VkDeviceOrHostAddressKHR const&() const14963     operator VkDeviceOrHostAddressKHR const&() const
14964     {
14965       return *reinterpret_cast<const VkDeviceOrHostAddressKHR*>(this);
14966     }
14967 
operator VkDeviceOrHostAddressKHR&()14968     operator VkDeviceOrHostAddressKHR &()
14969     {
14970       return *reinterpret_cast<VkDeviceOrHostAddressKHR*>(this);
14971     }
14972 
14973 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
14974     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
14975     void* hostAddress;
14976 #else
14977     VkDeviceAddress deviceAddress;
14978     void* hostAddress;
14979 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
14980   };
14981 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14982 
14983 #ifdef VK_ENABLE_BETA_EXTENSIONS
14984   struct AccelerationStructureBuildGeometryInfoKHR
14985   {
14986     static const bool allowDuplicate = false;
14987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
14988 
14989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR14990     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
14991     : type( type_ ), flags( flags_ ), update( update_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryArrayOfPointers( geometryArrayOfPointers_ ), geometryCount( geometryCount_ ), ppGeometries( ppGeometries_ ), scratchData( scratchData_ )
14992     {}
14993 
14994     AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14995 
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR14996     AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14997     {
14998       *this = rhs;
14999     }
15000 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15001 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15002     AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15003     {
15004       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR const *>( &rhs );
15005       return *this;
15006     }
15007 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15008     AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15009     {
15010       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureBuildGeometryInfoKHR ) );
15011       return *this;
15012     }
15013 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15014     AccelerationStructureBuildGeometryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15015     {
15016       pNext = pNext_;
15017       return *this;
15018     }
15019 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15020     AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
15021     {
15022       type = type_;
15023       return *this;
15024     }
15025 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15026     AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15027     {
15028       flags = flags_;
15029       return *this;
15030     }
15031 
setUpdateVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15032     AccelerationStructureBuildGeometryInfoKHR & setUpdate( VULKAN_HPP_NAMESPACE::Bool32 update_ ) VULKAN_HPP_NOEXCEPT
15033     {
15034       update = update_;
15035       return *this;
15036     }
15037 
setSrcAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15038     AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
15039     {
15040       srcAccelerationStructure = srcAccelerationStructure_;
15041       return *this;
15042     }
15043 
setDstAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15044     AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
15045     {
15046       dstAccelerationStructure = dstAccelerationStructure_;
15047       return *this;
15048     }
15049 
setGeometryArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15050     AccelerationStructureBuildGeometryInfoKHR & setGeometryArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
15051     {
15052       geometryArrayOfPointers = geometryArrayOfPointers_;
15053       return *this;
15054     }
15055 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15056     AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
15057     {
15058       geometryCount = geometryCount_;
15059       return *this;
15060     }
15061 
setPpGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15062     AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
15063     {
15064       ppGeometries = ppGeometries_;
15065       return *this;
15066     }
15067 
setScratchDataVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15068     AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
15069     {
15070       scratchData = scratchData_;
15071       return *this;
15072     }
15073 
15074 
operator VkAccelerationStructureBuildGeometryInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15075     operator VkAccelerationStructureBuildGeometryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15076     {
15077       return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( this );
15078     }
15079 
operator VkAccelerationStructureBuildGeometryInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15080     operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
15081     {
15082       return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR*>( this );
15083     }
15084 
15085 
15086 
15087 
15088   public:
15089     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
15090     const void* pNext = {};
15091     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
15092     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
15093     VULKAN_HPP_NAMESPACE::Bool32 update = {};
15094     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {};
15095     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {};
15096     VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers = {};
15097     uint32_t geometryCount = {};
15098     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries = {};
15099     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
15100 
15101   };
15102   static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), "struct and wrapper have different size!" );
15103   static_assert( std::is_standard_layout<AccelerationStructureBuildGeometryInfoKHR>::value, "struct wrapper is not a standard layout!" );
15104 
15105   template <>
15106   struct CppType<StructureType, StructureType::eAccelerationStructureBuildGeometryInfoKHR>
15107   {
15108     using Type = AccelerationStructureBuildGeometryInfoKHR;
15109   };
15110 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15111 
15112 #ifdef VK_ENABLE_BETA_EXTENSIONS
15113   struct AccelerationStructureBuildOffsetInfoKHR
15114   {
15115 
15116 
15117 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15118     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildOffsetInfoKHR(uint32_t primitiveCount_ = {}, uint32_t primitiveOffset_ = {}, uint32_t firstVertex_ = {}, uint32_t transformOffset_ = {}) VULKAN_HPP_NOEXCEPT
15119     : primitiveCount( primitiveCount_ ), primitiveOffset( primitiveOffset_ ), firstVertex( firstVertex_ ), transformOffset( transformOffset_ )
15120     {}
15121 
15122     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildOffsetInfoKHR( AccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15123 
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15124     AccelerationStructureBuildOffsetInfoKHR( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15125     {
15126       *this = rhs;
15127     }
15128 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15129 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15130     AccelerationStructureBuildOffsetInfoKHR & operator=( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15131     {
15132       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR const *>( &rhs );
15133       return *this;
15134     }
15135 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15136     AccelerationStructureBuildOffsetInfoKHR & operator=( AccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15137     {
15138       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureBuildOffsetInfoKHR ) );
15139       return *this;
15140     }
15141 
setPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15142     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
15143     {
15144       primitiveCount = primitiveCount_;
15145       return *this;
15146     }
15147 
setPrimitiveOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15148     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT
15149     {
15150       primitiveOffset = primitiveOffset_;
15151       return *this;
15152     }
15153 
setFirstVertexVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15154     AccelerationStructureBuildOffsetInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
15155     {
15156       firstVertex = firstVertex_;
15157       return *this;
15158     }
15159 
setTransformOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15160     AccelerationStructureBuildOffsetInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT
15161     {
15162       transformOffset = transformOffset_;
15163       return *this;
15164     }
15165 
15166 
operator VkAccelerationStructureBuildOffsetInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15167     operator VkAccelerationStructureBuildOffsetInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15168     {
15169       return *reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR*>( this );
15170     }
15171 
operator VkAccelerationStructureBuildOffsetInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15172     operator VkAccelerationStructureBuildOffsetInfoKHR &() VULKAN_HPP_NOEXCEPT
15173     {
15174       return *reinterpret_cast<VkAccelerationStructureBuildOffsetInfoKHR*>( this );
15175     }
15176 
15177 
15178 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15179     auto operator<=>( AccelerationStructureBuildOffsetInfoKHR const& ) const = default;
15180 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15181     bool operator==( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15182     {
15183       return ( primitiveCount == rhs.primitiveCount )
15184           && ( primitiveOffset == rhs.primitiveOffset )
15185           && ( firstVertex == rhs.firstVertex )
15186           && ( transformOffset == rhs.transformOffset );
15187     }
15188 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15189     bool operator!=( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15190     {
15191       return !operator==( rhs );
15192     }
15193 #endif
15194 
15195 
15196 
15197   public:
15198     uint32_t primitiveCount = {};
15199     uint32_t primitiveOffset = {};
15200     uint32_t firstVertex = {};
15201     uint32_t transformOffset = {};
15202 
15203   };
15204   static_assert( sizeof( AccelerationStructureBuildOffsetInfoKHR ) == sizeof( VkAccelerationStructureBuildOffsetInfoKHR ), "struct and wrapper have different size!" );
15205   static_assert( std::is_standard_layout<AccelerationStructureBuildOffsetInfoKHR>::value, "struct wrapper is not a standard layout!" );
15206 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15207 
15208 #ifdef VK_ENABLE_BETA_EXTENSIONS
15209   struct AccelerationStructureCreateGeometryTypeInfoKHR
15210   {
15211     static const bool allowDuplicate = false;
15212     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
15213 
15214 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15215     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
15216     : geometryType( geometryType_ ), maxPrimitiveCount( maxPrimitiveCount_ ), indexType( indexType_ ), maxVertexCount( maxVertexCount_ ), vertexFormat( vertexFormat_ ), allowsTransforms( allowsTransforms_ )
15217     {}
15218 
15219     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateGeometryTypeInfoKHR( AccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15220 
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15221     AccelerationStructureCreateGeometryTypeInfoKHR( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15222     {
15223       *this = rhs;
15224     }
15225 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15226 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15227     AccelerationStructureCreateGeometryTypeInfoKHR & operator=( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15228     {
15229       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR const *>( &rhs );
15230       return *this;
15231     }
15232 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15233     AccelerationStructureCreateGeometryTypeInfoKHR & operator=( AccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15234     {
15235       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) );
15236       return *this;
15237     }
15238 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15239     AccelerationStructureCreateGeometryTypeInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15240     {
15241       pNext = pNext_;
15242       return *this;
15243     }
15244 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15245     AccelerationStructureCreateGeometryTypeInfoKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
15246     {
15247       geometryType = geometryType_;
15248       return *this;
15249     }
15250 
setMaxPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15251     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxPrimitiveCount( uint32_t maxPrimitiveCount_ ) VULKAN_HPP_NOEXCEPT
15252     {
15253       maxPrimitiveCount = maxPrimitiveCount_;
15254       return *this;
15255     }
15256 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15257     AccelerationStructureCreateGeometryTypeInfoKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
15258     {
15259       indexType = indexType_;
15260       return *this;
15261     }
15262 
setMaxVertexCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15263     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxVertexCount( uint32_t maxVertexCount_ ) VULKAN_HPP_NOEXCEPT
15264     {
15265       maxVertexCount = maxVertexCount_;
15266       return *this;
15267     }
15268 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15269     AccelerationStructureCreateGeometryTypeInfoKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
15270     {
15271       vertexFormat = vertexFormat_;
15272       return *this;
15273     }
15274 
setAllowsTransformsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15275     AccelerationStructureCreateGeometryTypeInfoKHR & setAllowsTransforms( VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms_ ) VULKAN_HPP_NOEXCEPT
15276     {
15277       allowsTransforms = allowsTransforms_;
15278       return *this;
15279     }
15280 
15281 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15282     operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15283     {
15284       return *reinterpret_cast<const VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
15285     }
15286 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15287     operator VkAccelerationStructureCreateGeometryTypeInfoKHR &() VULKAN_HPP_NOEXCEPT
15288     {
15289       return *reinterpret_cast<VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
15290     }
15291 
15292 
15293 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15294     auto operator<=>( AccelerationStructureCreateGeometryTypeInfoKHR const& ) const = default;
15295 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15296     bool operator==( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15297     {
15298       return ( sType == rhs.sType )
15299           && ( pNext == rhs.pNext )
15300           && ( geometryType == rhs.geometryType )
15301           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
15302           && ( indexType == rhs.indexType )
15303           && ( maxVertexCount == rhs.maxVertexCount )
15304           && ( vertexFormat == rhs.vertexFormat )
15305           && ( allowsTransforms == rhs.allowsTransforms );
15306     }
15307 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15308     bool operator!=( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15309     {
15310       return !operator==( rhs );
15311     }
15312 #endif
15313 
15314 
15315 
15316   public:
15317     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
15318     const void* pNext = {};
15319     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
15320     uint32_t maxPrimitiveCount = {};
15321     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
15322     uint32_t maxVertexCount = {};
15323     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
15324     VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms = {};
15325 
15326   };
15327   static_assert( sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) == sizeof( VkAccelerationStructureCreateGeometryTypeInfoKHR ), "struct and wrapper have different size!" );
15328   static_assert( std::is_standard_layout<AccelerationStructureCreateGeometryTypeInfoKHR>::value, "struct wrapper is not a standard layout!" );
15329 
15330   template <>
15331   struct CppType<StructureType, StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR>
15332   {
15333     using Type = AccelerationStructureCreateGeometryTypeInfoKHR;
15334   };
15335 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15336 
15337 #ifdef VK_ENABLE_BETA_EXTENSIONS
15338   struct AccelerationStructureCreateInfoKHR
15339   {
15340     static const bool allowDuplicate = false;
15341     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
15342 
15343 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15344     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
15345     : compactedSize( compactedSize_ ), type( type_ ), flags( flags_ ), maxGeometryCount( maxGeometryCount_ ), pGeometryInfos( pGeometryInfos_ ), deviceAddress( deviceAddress_ )
15346     {}
15347 
15348     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15349 
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15350     AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15351     {
15352       *this = rhs;
15353     }
15354 
15355 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15356     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_ = {} )
15357     : compactedSize( compactedSize_ ), type( type_ ), flags( flags_ ), maxGeometryCount( static_cast<uint32_t>( geometryInfos_.size() ) ), pGeometryInfos( geometryInfos_.data() ), deviceAddress( deviceAddress_ )
15358     {}
15359 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
15360 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15361 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15362     AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15363     {
15364       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>( &rhs );
15365       return *this;
15366     }
15367 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15368     AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15369     {
15370       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateInfoKHR ) );
15371       return *this;
15372     }
15373 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15374     AccelerationStructureCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15375     {
15376       pNext = pNext_;
15377       return *this;
15378     }
15379 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15380     AccelerationStructureCreateInfoKHR & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
15381     {
15382       compactedSize = compactedSize_;
15383       return *this;
15384     }
15385 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15386     AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
15387     {
15388       type = type_;
15389       return *this;
15390     }
15391 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15392     AccelerationStructureCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15393     {
15394       flags = flags_;
15395       return *this;
15396     }
15397 
setMaxGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15398     AccelerationStructureCreateInfoKHR & setMaxGeometryCount( uint32_t maxGeometryCount_ ) VULKAN_HPP_NOEXCEPT
15399     {
15400       maxGeometryCount = maxGeometryCount_;
15401       return *this;
15402     }
15403 
setPGeometryInfosVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15404     AccelerationStructureCreateInfoKHR & setPGeometryInfos( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos_ ) VULKAN_HPP_NOEXCEPT
15405     {
15406       pGeometryInfos = pGeometryInfos_;
15407       return *this;
15408     }
15409 
15410 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometryInfosVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15411     AccelerationStructureCreateInfoKHR & setGeometryInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR> const & geometryInfos_ ) VULKAN_HPP_NOEXCEPT
15412     {
15413       maxGeometryCount = static_cast<uint32_t>( geometryInfos_.size() );
15414       pGeometryInfos = geometryInfos_.data();
15415       return *this;
15416     }
15417 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
15418 
setDeviceAddressVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15419     AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
15420     {
15421       deviceAddress = deviceAddress_;
15422       return *this;
15423     }
15424 
15425 
operator VkAccelerationStructureCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15426     operator VkAccelerationStructureCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15427     {
15428       return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( this );
15429     }
15430 
operator VkAccelerationStructureCreateInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15431     operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
15432     {
15433       return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR*>( this );
15434     }
15435 
15436 
15437 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15438     auto operator<=>( AccelerationStructureCreateInfoKHR const& ) const = default;
15439 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15440     bool operator==( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15441     {
15442       return ( sType == rhs.sType )
15443           && ( pNext == rhs.pNext )
15444           && ( compactedSize == rhs.compactedSize )
15445           && ( type == rhs.type )
15446           && ( flags == rhs.flags )
15447           && ( maxGeometryCount == rhs.maxGeometryCount )
15448           && ( pGeometryInfos == rhs.pGeometryInfos )
15449           && ( deviceAddress == rhs.deviceAddress );
15450     }
15451 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15452     bool operator!=( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15453     {
15454       return !operator==( rhs );
15455     }
15456 #endif
15457 
15458 
15459 
15460   public:
15461     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
15462     const void* pNext = {};
15463     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
15464     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
15465     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
15466     uint32_t maxGeometryCount = {};
15467     const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos = {};
15468     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
15469 
15470   };
15471   static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), "struct and wrapper have different size!" );
15472   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
15473 
15474   template <>
15475   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
15476   {
15477     using Type = AccelerationStructureCreateInfoKHR;
15478   };
15479 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15480 
15481   class Buffer
15482   {
15483   public:
15484     using CType = VkBuffer;
15485 
15486     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer;
15487     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
15488 
15489   public:
Buffer()15490     VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT
15491       : m_buffer(VK_NULL_HANDLE)
15492     {}
15493 
Buffer(std::nullptr_t)15494     VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15495       : m_buffer(VK_NULL_HANDLE)
15496     {}
15497 
Buffer(VkBuffer buffer)15498     VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT
15499       : m_buffer( buffer )
15500     {}
15501 
15502 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBuffer buffer)15503     Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT
15504     {
15505       m_buffer = buffer;
15506       return *this;
15507     }
15508 #endif
15509 
operator =(std::nullptr_t)15510     Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15511     {
15512       m_buffer = VK_NULL_HANDLE;
15513       return *this;
15514     }
15515 
15516 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15517     auto operator<=>( Buffer const& ) const = default;
15518 #else
operator ==(Buffer const & rhs) const15519     bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15520     {
15521       return m_buffer == rhs.m_buffer;
15522     }
15523 
operator !=(Buffer const & rhs) const15524     bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15525     {
15526       return m_buffer != rhs.m_buffer;
15527     }
15528 
operator <(Buffer const & rhs) const15529     bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15530     {
15531       return m_buffer < rhs.m_buffer;
15532     }
15533 #endif
15534 
operator VkBuffer() const15535     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT
15536     {
15537       return m_buffer;
15538     }
15539 
operator bool() const15540     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15541     {
15542       return m_buffer != VK_NULL_HANDLE;
15543     }
15544 
operator !() const15545     bool operator!() const VULKAN_HPP_NOEXCEPT
15546     {
15547       return m_buffer == VK_NULL_HANDLE;
15548     }
15549 
15550   private:
15551     VkBuffer m_buffer;
15552   };
15553   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
15554 
15555   template <>
15556   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBuffer>
15557   {
15558     using type = VULKAN_HPP_NAMESPACE::Buffer;
15559   };
15560 
15561   template <>
15562   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBuffer>
15563   {
15564     using Type = VULKAN_HPP_NAMESPACE::Buffer;
15565   };
15566 
15567 
15568   template <>
15569   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer>
15570   {
15571     using Type = VULKAN_HPP_NAMESPACE::Buffer;
15572   };
15573 
15574 
15575   template <>
15576   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Buffer>
15577   {
15578     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
15579   };
15580 
15581   struct GeometryTrianglesNV
15582   {
15583     static const bool allowDuplicate = false;
15584     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
15585 
15586 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15587     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
15588     : vertexData( vertexData_ ), vertexOffset( vertexOffset_ ), vertexCount( vertexCount_ ), vertexStride( vertexStride_ ), vertexFormat( vertexFormat_ ), indexData( indexData_ ), indexOffset( indexOffset_ ), indexCount( indexCount_ ), indexType( indexType_ ), transformData( transformData_ ), transformOffset( transformOffset_ )
15589     {}
15590 
15591     VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15592 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15593     GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15594     {
15595       *this = rhs;
15596     }
15597 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15598 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15599     GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15600     {
15601       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>( &rhs );
15602       return *this;
15603     }
15604 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15605     GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15606     {
15607       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryTrianglesNV ) );
15608       return *this;
15609     }
15610 
setPNextVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15611     GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15612     {
15613       pNext = pNext_;
15614       return *this;
15615     }
15616 
setVertexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15617     GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
15618     {
15619       vertexData = vertexData_;
15620       return *this;
15621     }
15622 
setVertexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15623     GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
15624     {
15625       vertexOffset = vertexOffset_;
15626       return *this;
15627     }
15628 
setVertexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15629     GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
15630     {
15631       vertexCount = vertexCount_;
15632       return *this;
15633     }
15634 
setVertexStrideVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15635     GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
15636     {
15637       vertexStride = vertexStride_;
15638       return *this;
15639     }
15640 
setVertexFormatVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15641     GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
15642     {
15643       vertexFormat = vertexFormat_;
15644       return *this;
15645     }
15646 
setIndexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15647     GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
15648     {
15649       indexData = indexData_;
15650       return *this;
15651     }
15652 
setIndexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15653     GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
15654     {
15655       indexOffset = indexOffset_;
15656       return *this;
15657     }
15658 
setIndexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15659     GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
15660     {
15661       indexCount = indexCount_;
15662       return *this;
15663     }
15664 
setIndexTypeVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15665     GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
15666     {
15667       indexType = indexType_;
15668       return *this;
15669     }
15670 
setTransformDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15671     GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
15672     {
15673       transformData = transformData_;
15674       return *this;
15675     }
15676 
setTransformOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15677     GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
15678     {
15679       transformOffset = transformOffset_;
15680       return *this;
15681     }
15682 
15683 
operator VkGeometryTrianglesNV const&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15684     operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT
15685     {
15686       return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
15687     }
15688 
operator VkGeometryTrianglesNV&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15689     operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
15690     {
15691       return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
15692     }
15693 
15694 
15695 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15696     auto operator<=>( GeometryTrianglesNV const& ) const = default;
15697 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15698     bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15699     {
15700       return ( sType == rhs.sType )
15701           && ( pNext == rhs.pNext )
15702           && ( vertexData == rhs.vertexData )
15703           && ( vertexOffset == rhs.vertexOffset )
15704           && ( vertexCount == rhs.vertexCount )
15705           && ( vertexStride == rhs.vertexStride )
15706           && ( vertexFormat == rhs.vertexFormat )
15707           && ( indexData == rhs.indexData )
15708           && ( indexOffset == rhs.indexOffset )
15709           && ( indexCount == rhs.indexCount )
15710           && ( indexType == rhs.indexType )
15711           && ( transformData == rhs.transformData )
15712           && ( transformOffset == rhs.transformOffset );
15713     }
15714 
operator !=VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15715     bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15716     {
15717       return !operator==( rhs );
15718     }
15719 #endif
15720 
15721 
15722 
15723   public:
15724     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
15725     const void* pNext = {};
15726     VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
15727     VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
15728     uint32_t vertexCount = {};
15729     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
15730     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
15731     VULKAN_HPP_NAMESPACE::Buffer indexData = {};
15732     VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
15733     uint32_t indexCount = {};
15734     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
15735     VULKAN_HPP_NAMESPACE::Buffer transformData = {};
15736     VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
15737 
15738   };
15739   static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" );
15740   static_assert( std::is_standard_layout<GeometryTrianglesNV>::value, "struct wrapper is not a standard layout!" );
15741 
15742   template <>
15743   struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
15744   {
15745     using Type = GeometryTrianglesNV;
15746   };
15747 
15748   struct GeometryAABBNV
15749   {
15750     static const bool allowDuplicate = false;
15751     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
15752 
15753 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV15754     VULKAN_HPP_CONSTEXPR GeometryAABBNV(VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, uint32_t numAABBs_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
15755     : aabbData( aabbData_ ), numAABBs( numAABBs_ ), stride( stride_ ), offset( offset_ )
15756     {}
15757 
15758     VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15759 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV15760     GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15761     {
15762       *this = rhs;
15763     }
15764 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15765 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV15766     GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15767     {
15768       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>( &rhs );
15769       return *this;
15770     }
15771 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV15772     GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15773     {
15774       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryAABBNV ) );
15775       return *this;
15776     }
15777 
setPNextVULKAN_HPP_NAMESPACE::GeometryAABBNV15778     GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15779     {
15780       pNext = pNext_;
15781       return *this;
15782     }
15783 
setAabbDataVULKAN_HPP_NAMESPACE::GeometryAABBNV15784     GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
15785     {
15786       aabbData = aabbData_;
15787       return *this;
15788     }
15789 
setNumAABBsVULKAN_HPP_NAMESPACE::GeometryAABBNV15790     GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
15791     {
15792       numAABBs = numAABBs_;
15793       return *this;
15794     }
15795 
setStrideVULKAN_HPP_NAMESPACE::GeometryAABBNV15796     GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
15797     {
15798       stride = stride_;
15799       return *this;
15800     }
15801 
setOffsetVULKAN_HPP_NAMESPACE::GeometryAABBNV15802     GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
15803     {
15804       offset = offset_;
15805       return *this;
15806     }
15807 
15808 
operator VkGeometryAABBNV const&VULKAN_HPP_NAMESPACE::GeometryAABBNV15809     operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT
15810     {
15811       return *reinterpret_cast<const VkGeometryAABBNV*>( this );
15812     }
15813 
operator VkGeometryAABBNV&VULKAN_HPP_NAMESPACE::GeometryAABBNV15814     operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
15815     {
15816       return *reinterpret_cast<VkGeometryAABBNV*>( this );
15817     }
15818 
15819 
15820 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15821     auto operator<=>( GeometryAABBNV const& ) const = default;
15822 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryAABBNV15823     bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15824     {
15825       return ( sType == rhs.sType )
15826           && ( pNext == rhs.pNext )
15827           && ( aabbData == rhs.aabbData )
15828           && ( numAABBs == rhs.numAABBs )
15829           && ( stride == rhs.stride )
15830           && ( offset == rhs.offset );
15831     }
15832 
operator !=VULKAN_HPP_NAMESPACE::GeometryAABBNV15833     bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15834     {
15835       return !operator==( rhs );
15836     }
15837 #endif
15838 
15839 
15840 
15841   public:
15842     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
15843     const void* pNext = {};
15844     VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
15845     uint32_t numAABBs = {};
15846     uint32_t stride = {};
15847     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
15848 
15849   };
15850   static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" );
15851   static_assert( std::is_standard_layout<GeometryAABBNV>::value, "struct wrapper is not a standard layout!" );
15852 
15853   template <>
15854   struct CppType<StructureType, StructureType::eGeometryAabbNV>
15855   {
15856     using Type = GeometryAABBNV;
15857   };
15858 
15859   struct GeometryDataNV
15860   {
15861 
15862 
15863 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV15864     VULKAN_HPP_CONSTEXPR GeometryDataNV(VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {}) VULKAN_HPP_NOEXCEPT
15865     : triangles( triangles_ ), aabbs( aabbs_ )
15866     {}
15867 
15868     VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15869 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV15870     GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
15871     {
15872       *this = rhs;
15873     }
15874 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15875 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV15876     GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
15877     {
15878       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>( &rhs );
15879       return *this;
15880     }
15881 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV15882     GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
15883     {
15884       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryDataNV ) );
15885       return *this;
15886     }
15887 
setTrianglesVULKAN_HPP_NAMESPACE::GeometryDataNV15888     GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
15889     {
15890       triangles = triangles_;
15891       return *this;
15892     }
15893 
setAabbsVULKAN_HPP_NAMESPACE::GeometryDataNV15894     GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
15895     {
15896       aabbs = aabbs_;
15897       return *this;
15898     }
15899 
15900 
operator VkGeometryDataNV const&VULKAN_HPP_NAMESPACE::GeometryDataNV15901     operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT
15902     {
15903       return *reinterpret_cast<const VkGeometryDataNV*>( this );
15904     }
15905 
operator VkGeometryDataNV&VULKAN_HPP_NAMESPACE::GeometryDataNV15906     operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
15907     {
15908       return *reinterpret_cast<VkGeometryDataNV*>( this );
15909     }
15910 
15911 
15912 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15913     auto operator<=>( GeometryDataNV const& ) const = default;
15914 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryDataNV15915     bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15916     {
15917       return ( triangles == rhs.triangles )
15918           && ( aabbs == rhs.aabbs );
15919     }
15920 
operator !=VULKAN_HPP_NAMESPACE::GeometryDataNV15921     bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15922     {
15923       return !operator==( rhs );
15924     }
15925 #endif
15926 
15927 
15928 
15929   public:
15930     VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
15931     VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
15932 
15933   };
15934   static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" );
15935   static_assert( std::is_standard_layout<GeometryDataNV>::value, "struct wrapper is not a standard layout!" );
15936 
15937   struct GeometryNV
15938   {
15939     static const bool allowDuplicate = false;
15940     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
15941 
15942 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV15943     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
15944     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
15945     {}
15946 
15947     VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15948 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV15949     GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
15950     {
15951       *this = rhs;
15952     }
15953 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15954 
operator =VULKAN_HPP_NAMESPACE::GeometryNV15955     GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
15956     {
15957       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>( &rhs );
15958       return *this;
15959     }
15960 
operator =VULKAN_HPP_NAMESPACE::GeometryNV15961     GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
15962     {
15963       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryNV ) );
15964       return *this;
15965     }
15966 
setPNextVULKAN_HPP_NAMESPACE::GeometryNV15967     GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15968     {
15969       pNext = pNext_;
15970       return *this;
15971     }
15972 
setGeometryTypeVULKAN_HPP_NAMESPACE::GeometryNV15973     GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
15974     {
15975       geometryType = geometryType_;
15976       return *this;
15977     }
15978 
setGeometryVULKAN_HPP_NAMESPACE::GeometryNV15979     GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
15980     {
15981       geometry = geometry_;
15982       return *this;
15983     }
15984 
setFlagsVULKAN_HPP_NAMESPACE::GeometryNV15985     GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15986     {
15987       flags = flags_;
15988       return *this;
15989     }
15990 
15991 
operator VkGeometryNV const&VULKAN_HPP_NAMESPACE::GeometryNV15992     operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT
15993     {
15994       return *reinterpret_cast<const VkGeometryNV*>( this );
15995     }
15996 
operator VkGeometryNV&VULKAN_HPP_NAMESPACE::GeometryNV15997     operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
15998     {
15999       return *reinterpret_cast<VkGeometryNV*>( this );
16000     }
16001 
16002 
16003 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16004     auto operator<=>( GeometryNV const& ) const = default;
16005 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryNV16006     bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16007     {
16008       return ( sType == rhs.sType )
16009           && ( pNext == rhs.pNext )
16010           && ( geometryType == rhs.geometryType )
16011           && ( geometry == rhs.geometry )
16012           && ( flags == rhs.flags );
16013     }
16014 
operator !=VULKAN_HPP_NAMESPACE::GeometryNV16015     bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16016     {
16017       return !operator==( rhs );
16018     }
16019 #endif
16020 
16021 
16022 
16023   public:
16024     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
16025     const void* pNext = {};
16026     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
16027     VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
16028     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
16029 
16030   };
16031   static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" );
16032   static_assert( std::is_standard_layout<GeometryNV>::value, "struct wrapper is not a standard layout!" );
16033 
16034   template <>
16035   struct CppType<StructureType, StructureType::eGeometryNV>
16036   {
16037     using Type = GeometryNV;
16038   };
16039 
16040   struct AccelerationStructureInfoNV
16041   {
16042     static const bool allowDuplicate = false;
16043     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
16044 
16045 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16046     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
16047     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ )
16048     {}
16049 
16050     VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16051 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16052     AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16053     {
16054       *this = rhs;
16055     }
16056 
16057 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16058     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_ )
16059     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( static_cast<uint32_t>( geometries_.size() ) ), pGeometries( geometries_.data() )
16060     {}
16061 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16062 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16063 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16064     AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16065     {
16066       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>( &rhs );
16067       return *this;
16068     }
16069 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16070     AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16071     {
16072       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureInfoNV ) );
16073       return *this;
16074     }
16075 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16076     AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16077     {
16078       pNext = pNext_;
16079       return *this;
16080     }
16081 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16082     AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
16083     {
16084       type = type_;
16085       return *this;
16086     }
16087 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16088     AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
16089     {
16090       flags = flags_;
16091       return *this;
16092     }
16093 
setInstanceCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16094     AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
16095     {
16096       instanceCount = instanceCount_;
16097       return *this;
16098     }
16099 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16100     AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
16101     {
16102       geometryCount = geometryCount_;
16103       return *this;
16104     }
16105 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16106     AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT
16107     {
16108       pGeometries = pGeometries_;
16109       return *this;
16110     }
16111 
16112 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16113     AccelerationStructureInfoNV & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ ) VULKAN_HPP_NOEXCEPT
16114     {
16115       geometryCount = static_cast<uint32_t>( geometries_.size() );
16116       pGeometries = geometries_.data();
16117       return *this;
16118     }
16119 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16120 
16121 
operator VkAccelerationStructureInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16122     operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT
16123     {
16124       return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
16125     }
16126 
operator VkAccelerationStructureInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16127     operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
16128     {
16129       return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
16130     }
16131 
16132 
16133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16134     auto operator<=>( AccelerationStructureInfoNV const& ) const = default;
16135 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16136     bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16137     {
16138       return ( sType == rhs.sType )
16139           && ( pNext == rhs.pNext )
16140           && ( type == rhs.type )
16141           && ( flags == rhs.flags )
16142           && ( instanceCount == rhs.instanceCount )
16143           && ( geometryCount == rhs.geometryCount )
16144           && ( pGeometries == rhs.pGeometries );
16145     }
16146 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16147     bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16148     {
16149       return !operator==( rhs );
16150     }
16151 #endif
16152 
16153 
16154 
16155   public:
16156     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
16157     const void* pNext = {};
16158     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
16159     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
16160     uint32_t instanceCount = {};
16161     uint32_t geometryCount = {};
16162     const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {};
16163 
16164   };
16165   static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" );
16166   static_assert( std::is_standard_layout<AccelerationStructureInfoNV>::value, "struct wrapper is not a standard layout!" );
16167 
16168   template <>
16169   struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
16170   {
16171     using Type = AccelerationStructureInfoNV;
16172   };
16173 
16174   struct AccelerationStructureCreateInfoNV
16175   {
16176     static const bool allowDuplicate = false;
16177     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
16178 
16179 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16180     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {}) VULKAN_HPP_NOEXCEPT
16181     : compactedSize( compactedSize_ ), info( info_ )
16182     {}
16183 
16184     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16185 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16186     AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16187     {
16188       *this = rhs;
16189     }
16190 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16191 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16192     AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16193     {
16194       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>( &rhs );
16195       return *this;
16196     }
16197 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16198     AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16199     {
16200       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateInfoNV ) );
16201       return *this;
16202     }
16203 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16204     AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16205     {
16206       pNext = pNext_;
16207       return *this;
16208     }
16209 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16210     AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
16211     {
16212       compactedSize = compactedSize_;
16213       return *this;
16214     }
16215 
setInfoVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16216     AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
16217     {
16218       info = info_;
16219       return *this;
16220     }
16221 
16222 
operator VkAccelerationStructureCreateInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16223     operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
16224     {
16225       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
16226     }
16227 
operator VkAccelerationStructureCreateInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16228     operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
16229     {
16230       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
16231     }
16232 
16233 
16234 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16235     auto operator<=>( AccelerationStructureCreateInfoNV const& ) const = default;
16236 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16237     bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16238     {
16239       return ( sType == rhs.sType )
16240           && ( pNext == rhs.pNext )
16241           && ( compactedSize == rhs.compactedSize )
16242           && ( info == rhs.info );
16243     }
16244 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16245     bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16246     {
16247       return !operator==( rhs );
16248     }
16249 #endif
16250 
16251 
16252 
16253   public:
16254     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
16255     const void* pNext = {};
16256     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
16257     VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
16258 
16259   };
16260   static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" );
16261   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
16262 
16263   template <>
16264   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
16265   {
16266     using Type = AccelerationStructureCreateInfoNV;
16267   };
16268 
16269 #ifdef VK_ENABLE_BETA_EXTENSIONS
16270   struct AccelerationStructureDeviceAddressInfoKHR
16271   {
16272     static const bool allowDuplicate = false;
16273     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
16274 
16275 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16276     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16277     : accelerationStructure( accelerationStructure_ )
16278     {}
16279 
16280     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16281 
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16282     AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16283     {
16284       *this = rhs;
16285     }
16286 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16287 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16288     AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16289     {
16290       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>( &rhs );
16291       return *this;
16292     }
16293 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16294     AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16295     {
16296       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureDeviceAddressInfoKHR ) );
16297       return *this;
16298     }
16299 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16300     AccelerationStructureDeviceAddressInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16301     {
16302       pNext = pNext_;
16303       return *this;
16304     }
16305 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16306     AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16307     {
16308       accelerationStructure = accelerationStructure_;
16309       return *this;
16310     }
16311 
16312 
operator VkAccelerationStructureDeviceAddressInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16313     operator VkAccelerationStructureDeviceAddressInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16314     {
16315       return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( this );
16316     }
16317 
operator VkAccelerationStructureDeviceAddressInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16318     operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
16319     {
16320       return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR*>( this );
16321     }
16322 
16323 
16324 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16325     auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const& ) const = default;
16326 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16327     bool operator==( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16328     {
16329       return ( sType == rhs.sType )
16330           && ( pNext == rhs.pNext )
16331           && ( accelerationStructure == rhs.accelerationStructure );
16332     }
16333 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16334     bool operator!=( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16335     {
16336       return !operator==( rhs );
16337     }
16338 #endif
16339 
16340 
16341 
16342   public:
16343     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
16344     const void* pNext = {};
16345     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
16346 
16347   };
16348   static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), "struct and wrapper have different size!" );
16349   static_assert( std::is_standard_layout<AccelerationStructureDeviceAddressInfoKHR>::value, "struct wrapper is not a standard layout!" );
16350 
16351   template <>
16352   struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
16353   {
16354     using Type = AccelerationStructureDeviceAddressInfoKHR;
16355   };
16356 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16357 
16358   struct TransformMatrixKHR
16359   {
16360 
16361 
16362 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR16363     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR(std::array<std::array<float,4>,3> const& matrix_ = {}) VULKAN_HPP_NOEXCEPT
16364     : matrix( matrix_ )
16365     {}
16366 
16367     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16368 
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR16369     TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16370     {
16371       *this = rhs;
16372     }
16373 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16374 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR16375     TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16376     {
16377       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>( &rhs );
16378       return *this;
16379     }
16380 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR16381     TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16382     {
16383       memcpy( static_cast<void *>( this ), &rhs, sizeof( TransformMatrixKHR ) );
16384       return *this;
16385     }
16386 
setMatrixVULKAN_HPP_NAMESPACE::TransformMatrixKHR16387     TransformMatrixKHR & setMatrix( std::array<std::array<float,4>,3> matrix_ ) VULKAN_HPP_NOEXCEPT
16388     {
16389       matrix = matrix_;
16390       return *this;
16391     }
16392 
16393 
operator VkTransformMatrixKHR const&VULKAN_HPP_NAMESPACE::TransformMatrixKHR16394     operator VkTransformMatrixKHR const&() const VULKAN_HPP_NOEXCEPT
16395     {
16396       return *reinterpret_cast<const VkTransformMatrixKHR*>( this );
16397     }
16398 
operator VkTransformMatrixKHR&VULKAN_HPP_NAMESPACE::TransformMatrixKHR16399     operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
16400     {
16401       return *reinterpret_cast<VkTransformMatrixKHR*>( this );
16402     }
16403 
16404 
16405 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16406     auto operator<=>( TransformMatrixKHR const& ) const = default;
16407 #else
operator ==VULKAN_HPP_NAMESPACE::TransformMatrixKHR16408     bool operator==( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16409     {
16410       return ( matrix == rhs.matrix );
16411     }
16412 
operator !=VULKAN_HPP_NAMESPACE::TransformMatrixKHR16413     bool operator!=( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16414     {
16415       return !operator==( rhs );
16416     }
16417 #endif
16418 
16419 
16420 
16421   public:
16422     VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
16423 
16424   };
16425   static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), "struct and wrapper have different size!" );
16426   static_assert( std::is_standard_layout<TransformMatrixKHR>::value, "struct wrapper is not a standard layout!" );
16427   using TransformMatrixNV = TransformMatrixKHR;
16428 
16429   struct AccelerationStructureInstanceKHR
16430   {
16431 
16432 
16433 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16434     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
16435     : transform( transform_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ )
16436     {}
16437 
16438     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16439 
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16440     AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16441     {
16442       *this = rhs;
16443     }
16444 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16445 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16446     AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16447     {
16448       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>( &rhs );
16449       return *this;
16450     }
16451 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16452     AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16453     {
16454       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureInstanceKHR ) );
16455       return *this;
16456     }
16457 
setTransformVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16458     AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
16459     {
16460       transform = transform_;
16461       return *this;
16462     }
16463 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16464     AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
16465     {
16466       instanceCustomIndex = instanceCustomIndex_;
16467       return *this;
16468     }
16469 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16470     AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
16471     {
16472       mask = mask_;
16473       return *this;
16474     }
16475 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16476     AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
16477     {
16478       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
16479       return *this;
16480     }
16481 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16482     AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
16483     {
16484       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
16485       return *this;
16486     }
16487 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16488     AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
16489     {
16490       accelerationStructureReference = accelerationStructureReference_;
16491       return *this;
16492     }
16493 
16494 
operator VkAccelerationStructureInstanceKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16495     operator VkAccelerationStructureInstanceKHR const&() const VULKAN_HPP_NOEXCEPT
16496     {
16497       return *reinterpret_cast<const VkAccelerationStructureInstanceKHR*>( this );
16498     }
16499 
operator VkAccelerationStructureInstanceKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16500     operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
16501     {
16502       return *reinterpret_cast<VkAccelerationStructureInstanceKHR*>( this );
16503     }
16504 
16505 
16506 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16507     auto operator<=>( AccelerationStructureInstanceKHR const& ) const = default;
16508 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16509     bool operator==( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16510     {
16511       return ( transform == rhs.transform )
16512           && ( instanceCustomIndex == rhs.instanceCustomIndex )
16513           && ( mask == rhs.mask )
16514           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
16515           && ( flags == rhs.flags )
16516           && ( accelerationStructureReference == rhs.accelerationStructureReference );
16517     }
16518 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16519     bool operator!=( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16520     {
16521       return !operator==( rhs );
16522     }
16523 #endif
16524 
16525 
16526 
16527   public:
16528     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
16529     uint32_t instanceCustomIndex : 24;
16530     uint32_t mask : 8;
16531     uint32_t instanceShaderBindingTableRecordOffset : 24;
16532     VkGeometryInstanceFlagsKHR flags : 8;
16533     uint64_t accelerationStructureReference = {};
16534 
16535   };
16536   static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), "struct and wrapper have different size!" );
16537   static_assert( std::is_standard_layout<AccelerationStructureInstanceKHR>::value, "struct wrapper is not a standard layout!" );
16538   using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
16539 
16540 #ifdef VK_ENABLE_BETA_EXTENSIONS
16541   struct AccelerationStructureMemoryRequirementsInfoKHR
16542   {
16543     static const bool allowDuplicate = false;
16544     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
16545 
16546 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16547     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
16548     : type( type_ ), buildType( buildType_ ), accelerationStructure( accelerationStructure_ )
16549     {}
16550 
16551     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoKHR( AccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16552 
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16553     AccelerationStructureMemoryRequirementsInfoKHR( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16554     {
16555       *this = rhs;
16556     }
16557 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16558 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16559     AccelerationStructureMemoryRequirementsInfoKHR & operator=( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16560     {
16561       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR const *>( &rhs );
16562       return *this;
16563     }
16564 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16565     AccelerationStructureMemoryRequirementsInfoKHR & operator=( AccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16566     {
16567       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) );
16568       return *this;
16569     }
16570 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16571     AccelerationStructureMemoryRequirementsInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16572     {
16573       pNext = pNext_;
16574       return *this;
16575     }
16576 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16577     AccelerationStructureMemoryRequirementsInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
16578     {
16579       type = type_;
16580       return *this;
16581     }
16582 
setBuildTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16583     AccelerationStructureMemoryRequirementsInfoKHR & setBuildType( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType_ ) VULKAN_HPP_NOEXCEPT
16584     {
16585       buildType = buildType_;
16586       return *this;
16587     }
16588 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16589     AccelerationStructureMemoryRequirementsInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16590     {
16591       accelerationStructure = accelerationStructure_;
16592       return *this;
16593     }
16594 
16595 
operator VkAccelerationStructureMemoryRequirementsInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16596     operator VkAccelerationStructureMemoryRequirementsInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16597     {
16598       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
16599     }
16600 
operator VkAccelerationStructureMemoryRequirementsInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16601     operator VkAccelerationStructureMemoryRequirementsInfoKHR &() VULKAN_HPP_NOEXCEPT
16602     {
16603       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
16604     }
16605 
16606 
16607 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16608     auto operator<=>( AccelerationStructureMemoryRequirementsInfoKHR const& ) const = default;
16609 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16610     bool operator==( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16611     {
16612       return ( sType == rhs.sType )
16613           && ( pNext == rhs.pNext )
16614           && ( type == rhs.type )
16615           && ( buildType == rhs.buildType )
16616           && ( accelerationStructure == rhs.accelerationStructure );
16617     }
16618 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16619     bool operator!=( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16620     {
16621       return !operator==( rhs );
16622     }
16623 #endif
16624 
16625 
16626 
16627   public:
16628     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
16629     const void* pNext = {};
16630     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR::eObject;
16631     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType = VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR::eHost;
16632     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
16633 
16634   };
16635   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoKHR ), "struct and wrapper have different size!" );
16636   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoKHR>::value, "struct wrapper is not a standard layout!" );
16637 
16638   template <>
16639   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoKHR>
16640   {
16641     using Type = AccelerationStructureMemoryRequirementsInfoKHR;
16642   };
16643 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16644 
16645   struct AccelerationStructureMemoryRequirementsInfoNV
16646   {
16647     static const bool allowDuplicate = false;
16648     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
16649 
16650 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16651     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16652     : type( type_ ), accelerationStructure( accelerationStructure_ )
16653     {}
16654 
16655     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16656 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16657     AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16658     {
16659       *this = rhs;
16660     }
16661 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16662 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16663     AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16664     {
16665       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs );
16666       return *this;
16667     }
16668 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16669     AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16670     {
16671       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoNV ) );
16672       return *this;
16673     }
16674 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16675     AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16676     {
16677       pNext = pNext_;
16678       return *this;
16679     }
16680 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16681     AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
16682     {
16683       type = type_;
16684       return *this;
16685     }
16686 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16687     AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16688     {
16689       accelerationStructure = accelerationStructure_;
16690       return *this;
16691     }
16692 
16693 
operator VkAccelerationStructureMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16694     operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
16695     {
16696       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
16697     }
16698 
operator VkAccelerationStructureMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16699     operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
16700     {
16701       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
16702     }
16703 
16704 
16705 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16706     auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const& ) const = default;
16707 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16708     bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16709     {
16710       return ( sType == rhs.sType )
16711           && ( pNext == rhs.pNext )
16712           && ( type == rhs.type )
16713           && ( accelerationStructure == rhs.accelerationStructure );
16714     }
16715 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16716     bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16717     {
16718       return !operator==( rhs );
16719     }
16720 #endif
16721 
16722 
16723 
16724   public:
16725     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
16726     const void* pNext = {};
16727     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = {};
16728     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
16729 
16730   };
16731   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
16732   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
16733 
16734   template <>
16735   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
16736   {
16737     using Type = AccelerationStructureMemoryRequirementsInfoNV;
16738   };
16739 
16740 #ifdef VK_ENABLE_BETA_EXTENSIONS
16741   struct AccelerationStructureVersionKHR
16742   {
16743     static const bool allowDuplicate = false;
16744     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionKHR;
16745 
16746 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16747     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionKHR(const uint8_t* versionData_ = {}) VULKAN_HPP_NOEXCEPT
16748     : versionData( versionData_ )
16749     {}
16750 
16751     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionKHR( AccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16752 
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16753     AccelerationStructureVersionKHR( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16754     {
16755       *this = rhs;
16756     }
16757 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16758 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16759     AccelerationStructureVersionKHR & operator=( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16760     {
16761       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR const *>( &rhs );
16762       return *this;
16763     }
16764 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16765     AccelerationStructureVersionKHR & operator=( AccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16766     {
16767       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureVersionKHR ) );
16768       return *this;
16769     }
16770 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16771     AccelerationStructureVersionKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16772     {
16773       pNext = pNext_;
16774       return *this;
16775     }
16776 
setVersionDataVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16777     AccelerationStructureVersionKHR & setVersionData( const uint8_t* versionData_ ) VULKAN_HPP_NOEXCEPT
16778     {
16779       versionData = versionData_;
16780       return *this;
16781     }
16782 
16783 
operator VkAccelerationStructureVersionKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16784     operator VkAccelerationStructureVersionKHR const&() const VULKAN_HPP_NOEXCEPT
16785     {
16786       return *reinterpret_cast<const VkAccelerationStructureVersionKHR*>( this );
16787     }
16788 
operator VkAccelerationStructureVersionKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16789     operator VkAccelerationStructureVersionKHR &() VULKAN_HPP_NOEXCEPT
16790     {
16791       return *reinterpret_cast<VkAccelerationStructureVersionKHR*>( this );
16792     }
16793 
16794 
16795 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16796     auto operator<=>( AccelerationStructureVersionKHR const& ) const = default;
16797 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16798     bool operator==( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16799     {
16800       return ( sType == rhs.sType )
16801           && ( pNext == rhs.pNext )
16802           && ( versionData == rhs.versionData );
16803     }
16804 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16805     bool operator!=( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16806     {
16807       return !operator==( rhs );
16808     }
16809 #endif
16810 
16811 
16812 
16813   public:
16814     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionKHR;
16815     const void* pNext = {};
16816     const uint8_t* versionData = {};
16817 
16818   };
16819   static_assert( sizeof( AccelerationStructureVersionKHR ) == sizeof( VkAccelerationStructureVersionKHR ), "struct and wrapper have different size!" );
16820   static_assert( std::is_standard_layout<AccelerationStructureVersionKHR>::value, "struct wrapper is not a standard layout!" );
16821 
16822   template <>
16823   struct CppType<StructureType, StructureType::eAccelerationStructureVersionKHR>
16824   {
16825     using Type = AccelerationStructureVersionKHR;
16826   };
16827 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16828 
16829   class SwapchainKHR
16830   {
16831   public:
16832     using CType = VkSwapchainKHR;
16833 
16834     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR;
16835     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
16836 
16837   public:
SwapchainKHR()16838     VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT
16839       : m_swapchainKHR(VK_NULL_HANDLE)
16840     {}
16841 
SwapchainKHR(std::nullptr_t)16842     VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16843       : m_swapchainKHR(VK_NULL_HANDLE)
16844     {}
16845 
SwapchainKHR(VkSwapchainKHR swapchainKHR)16846     VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT
16847       : m_swapchainKHR( swapchainKHR )
16848     {}
16849 
16850 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSwapchainKHR swapchainKHR)16851     SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT
16852     {
16853       m_swapchainKHR = swapchainKHR;
16854       return *this;
16855     }
16856 #endif
16857 
operator =(std::nullptr_t)16858     SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16859     {
16860       m_swapchainKHR = VK_NULL_HANDLE;
16861       return *this;
16862     }
16863 
16864 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16865     auto operator<=>( SwapchainKHR const& ) const = default;
16866 #else
operator ==(SwapchainKHR const & rhs) const16867     bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16868     {
16869       return m_swapchainKHR == rhs.m_swapchainKHR;
16870     }
16871 
operator !=(SwapchainKHR const & rhs) const16872     bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16873     {
16874       return m_swapchainKHR != rhs.m_swapchainKHR;
16875     }
16876 
operator <(SwapchainKHR const & rhs) const16877     bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
16878     {
16879       return m_swapchainKHR < rhs.m_swapchainKHR;
16880     }
16881 #endif
16882 
operator VkSwapchainKHR() const16883     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT
16884     {
16885       return m_swapchainKHR;
16886     }
16887 
operator bool() const16888     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16889     {
16890       return m_swapchainKHR != VK_NULL_HANDLE;
16891     }
16892 
operator !() const16893     bool operator!() const VULKAN_HPP_NOEXCEPT
16894     {
16895       return m_swapchainKHR == VK_NULL_HANDLE;
16896     }
16897 
16898   private:
16899     VkSwapchainKHR m_swapchainKHR;
16900   };
16901   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
16902 
16903   template <>
16904   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSwapchainKHR>
16905   {
16906     using type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
16907   };
16908 
16909   template <>
16910   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR>
16911   {
16912     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
16913   };
16914 
16915 
16916   template <>
16917   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR>
16918   {
16919     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
16920   };
16921 
16922 
16923   template <>
16924   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SwapchainKHR>
16925   {
16926     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
16927   };
16928 
16929   class Semaphore
16930   {
16931   public:
16932     using CType = VkSemaphore;
16933 
16934     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore;
16935     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
16936 
16937   public:
Semaphore()16938     VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT
16939       : m_semaphore(VK_NULL_HANDLE)
16940     {}
16941 
Semaphore(std::nullptr_t)16942     VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16943       : m_semaphore(VK_NULL_HANDLE)
16944     {}
16945 
Semaphore(VkSemaphore semaphore)16946     VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT
16947       : m_semaphore( semaphore )
16948     {}
16949 
16950 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSemaphore semaphore)16951     Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT
16952     {
16953       m_semaphore = semaphore;
16954       return *this;
16955     }
16956 #endif
16957 
operator =(std::nullptr_t)16958     Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16959     {
16960       m_semaphore = VK_NULL_HANDLE;
16961       return *this;
16962     }
16963 
16964 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16965     auto operator<=>( Semaphore const& ) const = default;
16966 #else
operator ==(Semaphore const & rhs) const16967     bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
16968     {
16969       return m_semaphore == rhs.m_semaphore;
16970     }
16971 
operator !=(Semaphore const & rhs) const16972     bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
16973     {
16974       return m_semaphore != rhs.m_semaphore;
16975     }
16976 
operator <(Semaphore const & rhs) const16977     bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
16978     {
16979       return m_semaphore < rhs.m_semaphore;
16980     }
16981 #endif
16982 
operator VkSemaphore() const16983     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT
16984     {
16985       return m_semaphore;
16986     }
16987 
operator bool() const16988     explicit operator bool() const VULKAN_HPP_NOEXCEPT
16989     {
16990       return m_semaphore != VK_NULL_HANDLE;
16991     }
16992 
operator !() const16993     bool operator!() const VULKAN_HPP_NOEXCEPT
16994     {
16995       return m_semaphore == VK_NULL_HANDLE;
16996     }
16997 
16998   private:
16999     VkSemaphore m_semaphore;
17000   };
17001   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
17002 
17003   template <>
17004   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSemaphore>
17005   {
17006     using type = VULKAN_HPP_NAMESPACE::Semaphore;
17007   };
17008 
17009   template <>
17010   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore>
17011   {
17012     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
17013   };
17014 
17015 
17016   template <>
17017   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore>
17018   {
17019     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
17020   };
17021 
17022 
17023   template <>
17024   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Semaphore>
17025   {
17026     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17027   };
17028 
17029   class Fence
17030   {
17031   public:
17032     using CType = VkFence;
17033 
17034     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence;
17035     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
17036 
17037   public:
Fence()17038     VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT
17039       : m_fence(VK_NULL_HANDLE)
17040     {}
17041 
Fence(std::nullptr_t)17042     VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17043       : m_fence(VK_NULL_HANDLE)
17044     {}
17045 
Fence(VkFence fence)17046     VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT
17047       : m_fence( fence )
17048     {}
17049 
17050 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFence fence)17051     Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT
17052     {
17053       m_fence = fence;
17054       return *this;
17055     }
17056 #endif
17057 
operator =(std::nullptr_t)17058     Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17059     {
17060       m_fence = VK_NULL_HANDLE;
17061       return *this;
17062     }
17063 
17064 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17065     auto operator<=>( Fence const& ) const = default;
17066 #else
operator ==(Fence const & rhs) const17067     bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17068     {
17069       return m_fence == rhs.m_fence;
17070     }
17071 
operator !=(Fence const & rhs) const17072     bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17073     {
17074       return m_fence != rhs.m_fence;
17075     }
17076 
operator <(Fence const & rhs) const17077     bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17078     {
17079       return m_fence < rhs.m_fence;
17080     }
17081 #endif
17082 
operator VkFence() const17083     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT
17084     {
17085       return m_fence;
17086     }
17087 
operator bool() const17088     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17089     {
17090       return m_fence != VK_NULL_HANDLE;
17091     }
17092 
operator !() const17093     bool operator!() const VULKAN_HPP_NOEXCEPT
17094     {
17095       return m_fence == VK_NULL_HANDLE;
17096     }
17097 
17098   private:
17099     VkFence m_fence;
17100   };
17101   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
17102 
17103   template <>
17104   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFence>
17105   {
17106     using type = VULKAN_HPP_NAMESPACE::Fence;
17107   };
17108 
17109   template <>
17110   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFence>
17111   {
17112     using Type = VULKAN_HPP_NAMESPACE::Fence;
17113   };
17114 
17115 
17116   template <>
17117   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence>
17118   {
17119     using Type = VULKAN_HPP_NAMESPACE::Fence;
17120   };
17121 
17122 
17123   template <>
17124   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Fence>
17125   {
17126     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17127   };
17128 
17129   struct AcquireNextImageInfoKHR
17130   {
17131     static const bool allowDuplicate = false;
17132     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
17133 
17134 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17135     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
17136     : swapchain( swapchain_ ), timeout( timeout_ ), semaphore( semaphore_ ), fence( fence_ ), deviceMask( deviceMask_ )
17137     {}
17138 
17139     VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17140 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17141     AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17142     {
17143       *this = rhs;
17144     }
17145 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17146 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17147     AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17148     {
17149       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>( &rhs );
17150       return *this;
17151     }
17152 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17153     AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17154     {
17155       memcpy( static_cast<void *>( this ), &rhs, sizeof( AcquireNextImageInfoKHR ) );
17156       return *this;
17157     }
17158 
setPNextVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17159     AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17160     {
17161       pNext = pNext_;
17162       return *this;
17163     }
17164 
setSwapchainVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17165     AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
17166     {
17167       swapchain = swapchain_;
17168       return *this;
17169     }
17170 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17171     AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
17172     {
17173       timeout = timeout_;
17174       return *this;
17175     }
17176 
setSemaphoreVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17177     AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
17178     {
17179       semaphore = semaphore_;
17180       return *this;
17181     }
17182 
setFenceVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17183     AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
17184     {
17185       fence = fence_;
17186       return *this;
17187     }
17188 
setDeviceMaskVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17189     AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
17190     {
17191       deviceMask = deviceMask_;
17192       return *this;
17193     }
17194 
17195 
operator VkAcquireNextImageInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17196     operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17197     {
17198       return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
17199     }
17200 
operator VkAcquireNextImageInfoKHR&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17201     operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
17202     {
17203       return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
17204     }
17205 
17206 
17207 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17208     auto operator<=>( AcquireNextImageInfoKHR const& ) const = default;
17209 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17210     bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17211     {
17212       return ( sType == rhs.sType )
17213           && ( pNext == rhs.pNext )
17214           && ( swapchain == rhs.swapchain )
17215           && ( timeout == rhs.timeout )
17216           && ( semaphore == rhs.semaphore )
17217           && ( fence == rhs.fence )
17218           && ( deviceMask == rhs.deviceMask );
17219     }
17220 
operator !=VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17221     bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17222     {
17223       return !operator==( rhs );
17224     }
17225 #endif
17226 
17227 
17228 
17229   public:
17230     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
17231     const void* pNext = {};
17232     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
17233     uint64_t timeout = {};
17234     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
17235     VULKAN_HPP_NAMESPACE::Fence fence = {};
17236     uint32_t deviceMask = {};
17237 
17238   };
17239   static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" );
17240   static_assert( std::is_standard_layout<AcquireNextImageInfoKHR>::value, "struct wrapper is not a standard layout!" );
17241 
17242   template <>
17243   struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
17244   {
17245     using Type = AcquireNextImageInfoKHR;
17246   };
17247 
17248   struct AcquireProfilingLockInfoKHR
17249   {
17250     static const bool allowDuplicate = false;
17251     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
17252 
17253 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17254     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR(VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, uint64_t timeout_ = {}) VULKAN_HPP_NOEXCEPT
17255     : flags( flags_ ), timeout( timeout_ )
17256     {}
17257 
17258     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17259 
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17260     AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17261     {
17262       *this = rhs;
17263     }
17264 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17265 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17266     AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17267     {
17268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>( &rhs );
17269       return *this;
17270     }
17271 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17272     AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17273     {
17274       memcpy( static_cast<void *>( this ), &rhs, sizeof( AcquireProfilingLockInfoKHR ) );
17275       return *this;
17276     }
17277 
setPNextVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17278     AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17279     {
17280       pNext = pNext_;
17281       return *this;
17282     }
17283 
setFlagsVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17284     AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17285     {
17286       flags = flags_;
17287       return *this;
17288     }
17289 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17290     AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
17291     {
17292       timeout = timeout_;
17293       return *this;
17294     }
17295 
17296 
operator VkAcquireProfilingLockInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17297     operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17298     {
17299       return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( this );
17300     }
17301 
operator VkAcquireProfilingLockInfoKHR&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17302     operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
17303     {
17304       return *reinterpret_cast<VkAcquireProfilingLockInfoKHR*>( this );
17305     }
17306 
17307 
17308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17309     auto operator<=>( AcquireProfilingLockInfoKHR const& ) const = default;
17310 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17311     bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17312     {
17313       return ( sType == rhs.sType )
17314           && ( pNext == rhs.pNext )
17315           && ( flags == rhs.flags )
17316           && ( timeout == rhs.timeout );
17317     }
17318 
operator !=VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17319     bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17320     {
17321       return !operator==( rhs );
17322     }
17323 #endif
17324 
17325 
17326 
17327   public:
17328     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
17329     const void* pNext = {};
17330     VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
17331     uint64_t timeout = {};
17332 
17333   };
17334   static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" );
17335   static_assert( std::is_standard_layout<AcquireProfilingLockInfoKHR>::value, "struct wrapper is not a standard layout!" );
17336 
17337   template <>
17338   struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
17339   {
17340     using Type = AcquireProfilingLockInfoKHR;
17341   };
17342 
17343   struct AllocationCallbacks
17344   {
17345 
17346 
17347 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks17348     VULKAN_HPP_CONSTEXPR AllocationCallbacks(void* pUserData_ = {}, PFN_vkAllocationFunction pfnAllocation_ = {}, PFN_vkReallocationFunction pfnReallocation_ = {}, PFN_vkFreeFunction pfnFree_ = {}, PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, PFN_vkInternalFreeNotification pfnInternalFree_ = {}) VULKAN_HPP_NOEXCEPT
17349     : pUserData( pUserData_ ), pfnAllocation( pfnAllocation_ ), pfnReallocation( pfnReallocation_ ), pfnFree( pfnFree_ ), pfnInternalAllocation( pfnInternalAllocation_ ), pfnInternalFree( pfnInternalFree_ )
17350     {}
17351 
17352     VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17353 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks17354     AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17355     {
17356       *this = rhs;
17357     }
17358 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17359 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks17360     AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17361     {
17362       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>( &rhs );
17363       return *this;
17364     }
17365 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks17366     AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17367     {
17368       memcpy( static_cast<void *>( this ), &rhs, sizeof( AllocationCallbacks ) );
17369       return *this;
17370     }
17371 
setPUserDataVULKAN_HPP_NAMESPACE::AllocationCallbacks17372     AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
17373     {
17374       pUserData = pUserData_;
17375       return *this;
17376     }
17377 
setPfnAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17378     AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
17379     {
17380       pfnAllocation = pfnAllocation_;
17381       return *this;
17382     }
17383 
setPfnReallocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17384     AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
17385     {
17386       pfnReallocation = pfnReallocation_;
17387       return *this;
17388     }
17389 
setPfnFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks17390     AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
17391     {
17392       pfnFree = pfnFree_;
17393       return *this;
17394     }
17395 
setPfnInternalAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17396     AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
17397     {
17398       pfnInternalAllocation = pfnInternalAllocation_;
17399       return *this;
17400     }
17401 
setPfnInternalFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks17402     AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
17403     {
17404       pfnInternalFree = pfnInternalFree_;
17405       return *this;
17406     }
17407 
17408 
operator VkAllocationCallbacks const&VULKAN_HPP_NAMESPACE::AllocationCallbacks17409     operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT
17410     {
17411       return *reinterpret_cast<const VkAllocationCallbacks*>( this );
17412     }
17413 
operator VkAllocationCallbacks&VULKAN_HPP_NAMESPACE::AllocationCallbacks17414     operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
17415     {
17416       return *reinterpret_cast<VkAllocationCallbacks*>( this );
17417     }
17418 
17419 
17420 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17421     auto operator<=>( AllocationCallbacks const& ) const = default;
17422 #else
operator ==VULKAN_HPP_NAMESPACE::AllocationCallbacks17423     bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
17424     {
17425       return ( pUserData == rhs.pUserData )
17426           && ( pfnAllocation == rhs.pfnAllocation )
17427           && ( pfnReallocation == rhs.pfnReallocation )
17428           && ( pfnFree == rhs.pfnFree )
17429           && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
17430           && ( pfnInternalFree == rhs.pfnInternalFree );
17431     }
17432 
operator !=VULKAN_HPP_NAMESPACE::AllocationCallbacks17433     bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
17434     {
17435       return !operator==( rhs );
17436     }
17437 #endif
17438 
17439 
17440 
17441   public:
17442     void* pUserData = {};
17443     PFN_vkAllocationFunction pfnAllocation = {};
17444     PFN_vkReallocationFunction pfnReallocation = {};
17445     PFN_vkFreeFunction pfnFree = {};
17446     PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
17447     PFN_vkInternalFreeNotification pfnInternalFree = {};
17448 
17449   };
17450   static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" );
17451   static_assert( std::is_standard_layout<AllocationCallbacks>::value, "struct wrapper is not a standard layout!" );
17452 
17453   struct ComponentMapping
17454   {
17455 
17456 
17457 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping17458     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
17459     : r( r_ ), g( g_ ), b( b_ ), a( a_ )
17460     {}
17461 
17462     VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17463 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping17464     ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17465     {
17466       *this = rhs;
17467     }
17468 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17469 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping17470     ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17471     {
17472       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>( &rhs );
17473       return *this;
17474     }
17475 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping17476     ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17477     {
17478       memcpy( static_cast<void *>( this ), &rhs, sizeof( ComponentMapping ) );
17479       return *this;
17480     }
17481 
setRVULKAN_HPP_NAMESPACE::ComponentMapping17482     ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
17483     {
17484       r = r_;
17485       return *this;
17486     }
17487 
setGVULKAN_HPP_NAMESPACE::ComponentMapping17488     ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
17489     {
17490       g = g_;
17491       return *this;
17492     }
17493 
setBVULKAN_HPP_NAMESPACE::ComponentMapping17494     ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
17495     {
17496       b = b_;
17497       return *this;
17498     }
17499 
setAVULKAN_HPP_NAMESPACE::ComponentMapping17500     ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
17501     {
17502       a = a_;
17503       return *this;
17504     }
17505 
17506 
operator VkComponentMapping const&VULKAN_HPP_NAMESPACE::ComponentMapping17507     operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT
17508     {
17509       return *reinterpret_cast<const VkComponentMapping*>( this );
17510     }
17511 
operator VkComponentMapping&VULKAN_HPP_NAMESPACE::ComponentMapping17512     operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
17513     {
17514       return *reinterpret_cast<VkComponentMapping*>( this );
17515     }
17516 
17517 
17518 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17519     auto operator<=>( ComponentMapping const& ) const = default;
17520 #else
operator ==VULKAN_HPP_NAMESPACE::ComponentMapping17521     bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
17522     {
17523       return ( r == rhs.r )
17524           && ( g == rhs.g )
17525           && ( b == rhs.b )
17526           && ( a == rhs.a );
17527     }
17528 
operator !=VULKAN_HPP_NAMESPACE::ComponentMapping17529     bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
17530     {
17531       return !operator==( rhs );
17532     }
17533 #endif
17534 
17535 
17536 
17537   public:
17538     VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17539     VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17540     VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17541     VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17542 
17543   };
17544   static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" );
17545   static_assert( std::is_standard_layout<ComponentMapping>::value, "struct wrapper is not a standard layout!" );
17546 
17547 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17548   struct AndroidHardwareBufferFormatPropertiesANDROID
17549   {
17550     static const bool allowDuplicate = false;
17551     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
17552 
17553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17554     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
17555     : format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
17556     {}
17557 
17558     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17559 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17560     AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17561     {
17562       *this = rhs;
17563     }
17564 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17565 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17566     AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17567     {
17568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs );
17569       return *this;
17570     }
17571 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17572     AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17573     {
17574       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) );
17575       return *this;
17576     }
17577 
17578 
operator VkAndroidHardwareBufferFormatPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17579     operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
17580     {
17581       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
17582     }
17583 
operator VkAndroidHardwareBufferFormatPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17584     operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
17585     {
17586       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
17587     }
17588 
17589 
17590 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17591     auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const& ) const = default;
17592 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17593     bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17594     {
17595       return ( sType == rhs.sType )
17596           && ( pNext == rhs.pNext )
17597           && ( format == rhs.format )
17598           && ( externalFormat == rhs.externalFormat )
17599           && ( formatFeatures == rhs.formatFeatures )
17600           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
17601           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
17602           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
17603           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
17604           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
17605     }
17606 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17607     bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17608     {
17609       return !operator==( rhs );
17610     }
17611 #endif
17612 
17613 
17614 
17615   public:
17616     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
17617     void* pNext = {};
17618     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
17619     uint64_t externalFormat = {};
17620     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
17621     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
17622     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
17623     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
17624     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
17625     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
17626 
17627   };
17628   static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
17629   static_assert( std::is_standard_layout<AndroidHardwareBufferFormatPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
17630 
17631   template <>
17632   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
17633   {
17634     using Type = AndroidHardwareBufferFormatPropertiesANDROID;
17635   };
17636 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17637 
17638 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17639   struct AndroidHardwareBufferPropertiesANDROID
17640   {
17641     static const bool allowDuplicate = false;
17642     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
17643 
17644 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17645     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
17646     : allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ )
17647     {}
17648 
17649     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17650 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17651     AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17652     {
17653       *this = rhs;
17654     }
17655 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17656 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17657     AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17658     {
17659       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>( &rhs );
17660       return *this;
17661     }
17662 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17663     AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17664     {
17665       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferPropertiesANDROID ) );
17666       return *this;
17667     }
17668 
17669 
operator VkAndroidHardwareBufferPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17670     operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
17671     {
17672       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
17673     }
17674 
operator VkAndroidHardwareBufferPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17675     operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
17676     {
17677       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
17678     }
17679 
17680 
17681 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17682     auto operator<=>( AndroidHardwareBufferPropertiesANDROID const& ) const = default;
17683 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17684     bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17685     {
17686       return ( sType == rhs.sType )
17687           && ( pNext == rhs.pNext )
17688           && ( allocationSize == rhs.allocationSize )
17689           && ( memoryTypeBits == rhs.memoryTypeBits );
17690     }
17691 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17692     bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17693     {
17694       return !operator==( rhs );
17695     }
17696 #endif
17697 
17698 
17699 
17700   public:
17701     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
17702     void* pNext = {};
17703     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
17704     uint32_t memoryTypeBits = {};
17705 
17706   };
17707   static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
17708   static_assert( std::is_standard_layout<AndroidHardwareBufferPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
17709 
17710   template <>
17711   struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
17712   {
17713     using Type = AndroidHardwareBufferPropertiesANDROID;
17714   };
17715 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17716 
17717 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17718   struct AndroidHardwareBufferUsageANDROID
17719   {
17720     static const bool allowDuplicate = false;
17721     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
17722 
17723 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17724     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID(uint64_t androidHardwareBufferUsage_ = {}) VULKAN_HPP_NOEXCEPT
17725     : androidHardwareBufferUsage( androidHardwareBufferUsage_ )
17726     {}
17727 
17728     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17729 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17730     AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17731     {
17732       *this = rhs;
17733     }
17734 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17735 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17736     AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17737     {
17738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>( &rhs );
17739       return *this;
17740     }
17741 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17742     AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17743     {
17744       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferUsageANDROID ) );
17745       return *this;
17746     }
17747 
17748 
operator VkAndroidHardwareBufferUsageANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17749     operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT
17750     {
17751       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
17752     }
17753 
operator VkAndroidHardwareBufferUsageANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17754     operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
17755     {
17756       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
17757     }
17758 
17759 
17760 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17761     auto operator<=>( AndroidHardwareBufferUsageANDROID const& ) const = default;
17762 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17763     bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17764     {
17765       return ( sType == rhs.sType )
17766           && ( pNext == rhs.pNext )
17767           && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
17768     }
17769 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17770     bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17771     {
17772       return !operator==( rhs );
17773     }
17774 #endif
17775 
17776 
17777 
17778   public:
17779     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
17780     void* pNext = {};
17781     uint64_t androidHardwareBufferUsage = {};
17782 
17783   };
17784   static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
17785   static_assert( std::is_standard_layout<AndroidHardwareBufferUsageANDROID>::value, "struct wrapper is not a standard layout!" );
17786 
17787   template <>
17788   struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
17789   {
17790     using Type = AndroidHardwareBufferUsageANDROID;
17791   };
17792 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17793 
17794 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17795   struct AndroidSurfaceCreateInfoKHR
17796   {
17797     static const bool allowDuplicate = false;
17798     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
17799 
17800 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17801     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, struct ANativeWindow* window_ = {}) VULKAN_HPP_NOEXCEPT
17802     : flags( flags_ ), window( window_ )
17803     {}
17804 
17805     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17806 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17807     AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17808     {
17809       *this = rhs;
17810     }
17811 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17812 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17813     AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17814     {
17815       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>( &rhs );
17816       return *this;
17817     }
17818 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17819     AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17820     {
17821       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidSurfaceCreateInfoKHR ) );
17822       return *this;
17823     }
17824 
setPNextVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17825     AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17826     {
17827       pNext = pNext_;
17828       return *this;
17829     }
17830 
setFlagsVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17831     AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17832     {
17833       flags = flags_;
17834       return *this;
17835     }
17836 
setWindowVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17837     AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT
17838     {
17839       window = window_;
17840       return *this;
17841     }
17842 
17843 
operator VkAndroidSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17844     operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17845     {
17846       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
17847     }
17848 
operator VkAndroidSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17849     operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
17850     {
17851       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
17852     }
17853 
17854 
17855 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17856     auto operator<=>( AndroidSurfaceCreateInfoKHR const& ) const = default;
17857 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17858     bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17859     {
17860       return ( sType == rhs.sType )
17861           && ( pNext == rhs.pNext )
17862           && ( flags == rhs.flags )
17863           && ( window == rhs.window );
17864     }
17865 
operator !=VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17866     bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17867     {
17868       return !operator==( rhs );
17869     }
17870 #endif
17871 
17872 
17873 
17874   public:
17875     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
17876     const void* pNext = {};
17877     VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
17878     struct ANativeWindow* window = {};
17879 
17880   };
17881   static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
17882   static_assert( std::is_standard_layout<AndroidSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
17883 
17884   template <>
17885   struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
17886   {
17887     using Type = AndroidSurfaceCreateInfoKHR;
17888   };
17889 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17890 
17891   struct ApplicationInfo
17892   {
17893     static const bool allowDuplicate = false;
17894     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
17895 
17896 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo17897     VULKAN_HPP_CONSTEXPR ApplicationInfo(const char* pApplicationName_ = {}, uint32_t applicationVersion_ = {}, const char* pEngineName_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}) VULKAN_HPP_NOEXCEPT
17898     : pApplicationName( pApplicationName_ ), applicationVersion( applicationVersion_ ), pEngineName( pEngineName_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ )
17899     {}
17900 
17901     VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17902 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo17903     ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
17904     {
17905       *this = rhs;
17906     }
17907 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17908 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo17909     ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
17910     {
17911       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>( &rhs );
17912       return *this;
17913     }
17914 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo17915     ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
17916     {
17917       memcpy( static_cast<void *>( this ), &rhs, sizeof( ApplicationInfo ) );
17918       return *this;
17919     }
17920 
setPNextVULKAN_HPP_NAMESPACE::ApplicationInfo17921     ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17922     {
17923       pNext = pNext_;
17924       return *this;
17925     }
17926 
setPApplicationNameVULKAN_HPP_NAMESPACE::ApplicationInfo17927     ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT
17928     {
17929       pApplicationName = pApplicationName_;
17930       return *this;
17931     }
17932 
setApplicationVersionVULKAN_HPP_NAMESPACE::ApplicationInfo17933     ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
17934     {
17935       applicationVersion = applicationVersion_;
17936       return *this;
17937     }
17938 
setPEngineNameVULKAN_HPP_NAMESPACE::ApplicationInfo17939     ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT
17940     {
17941       pEngineName = pEngineName_;
17942       return *this;
17943     }
17944 
setEngineVersionVULKAN_HPP_NAMESPACE::ApplicationInfo17945     ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
17946     {
17947       engineVersion = engineVersion_;
17948       return *this;
17949     }
17950 
setApiVersionVULKAN_HPP_NAMESPACE::ApplicationInfo17951     ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
17952     {
17953       apiVersion = apiVersion_;
17954       return *this;
17955     }
17956 
17957 
operator VkApplicationInfo const&VULKAN_HPP_NAMESPACE::ApplicationInfo17958     operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT
17959     {
17960       return *reinterpret_cast<const VkApplicationInfo*>( this );
17961     }
17962 
operator VkApplicationInfo&VULKAN_HPP_NAMESPACE::ApplicationInfo17963     operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
17964     {
17965       return *reinterpret_cast<VkApplicationInfo*>( this );
17966     }
17967 
17968 
17969 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17970     auto operator<=>( ApplicationInfo const& ) const = default;
17971 #else
operator ==VULKAN_HPP_NAMESPACE::ApplicationInfo17972     bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
17973     {
17974       return ( sType == rhs.sType )
17975           && ( pNext == rhs.pNext )
17976           && ( pApplicationName == rhs.pApplicationName )
17977           && ( applicationVersion == rhs.applicationVersion )
17978           && ( pEngineName == rhs.pEngineName )
17979           && ( engineVersion == rhs.engineVersion )
17980           && ( apiVersion == rhs.apiVersion );
17981     }
17982 
operator !=VULKAN_HPP_NAMESPACE::ApplicationInfo17983     bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
17984     {
17985       return !operator==( rhs );
17986     }
17987 #endif
17988 
17989 
17990 
17991   public:
17992     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
17993     const void* pNext = {};
17994     const char* pApplicationName = {};
17995     uint32_t applicationVersion = {};
17996     const char* pEngineName = {};
17997     uint32_t engineVersion = {};
17998     uint32_t apiVersion = {};
17999 
18000   };
18001   static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" );
18002   static_assert( std::is_standard_layout<ApplicationInfo>::value, "struct wrapper is not a standard layout!" );
18003 
18004   template <>
18005   struct CppType<StructureType, StructureType::eApplicationInfo>
18006   {
18007     using Type = ApplicationInfo;
18008   };
18009 
18010   struct AttachmentDescription
18011   {
18012 
18013 
18014 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription18015     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
18016     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
18017     {}
18018 
18019     VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18020 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription18021     AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18022     {
18023       *this = rhs;
18024     }
18025 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18026 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription18027     AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18028     {
18029       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>( &rhs );
18030       return *this;
18031     }
18032 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription18033     AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18034     {
18035       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescription ) );
18036       return *this;
18037     }
18038 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription18039     AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
18040     {
18041       flags = flags_;
18042       return *this;
18043     }
18044 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription18045     AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
18046     {
18047       format = format_;
18048       return *this;
18049     }
18050 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription18051     AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
18052     {
18053       samples = samples_;
18054       return *this;
18055     }
18056 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription18057     AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
18058     {
18059       loadOp = loadOp_;
18060       return *this;
18061     }
18062 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription18063     AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
18064     {
18065       storeOp = storeOp_;
18066       return *this;
18067     }
18068 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription18069     AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
18070     {
18071       stencilLoadOp = stencilLoadOp_;
18072       return *this;
18073     }
18074 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription18075     AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
18076     {
18077       stencilStoreOp = stencilStoreOp_;
18078       return *this;
18079     }
18080 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription18081     AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
18082     {
18083       initialLayout = initialLayout_;
18084       return *this;
18085     }
18086 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription18087     AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
18088     {
18089       finalLayout = finalLayout_;
18090       return *this;
18091     }
18092 
18093 
operator VkAttachmentDescription const&VULKAN_HPP_NAMESPACE::AttachmentDescription18094     operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT
18095     {
18096       return *reinterpret_cast<const VkAttachmentDescription*>( this );
18097     }
18098 
operator VkAttachmentDescription&VULKAN_HPP_NAMESPACE::AttachmentDescription18099     operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
18100     {
18101       return *reinterpret_cast<VkAttachmentDescription*>( this );
18102     }
18103 
18104 
18105 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18106     auto operator<=>( AttachmentDescription const& ) const = default;
18107 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription18108     bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
18109     {
18110       return ( flags == rhs.flags )
18111           && ( format == rhs.format )
18112           && ( samples == rhs.samples )
18113           && ( loadOp == rhs.loadOp )
18114           && ( storeOp == rhs.storeOp )
18115           && ( stencilLoadOp == rhs.stencilLoadOp )
18116           && ( stencilStoreOp == rhs.stencilStoreOp )
18117           && ( initialLayout == rhs.initialLayout )
18118           && ( finalLayout == rhs.finalLayout );
18119     }
18120 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription18121     bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
18122     {
18123       return !operator==( rhs );
18124     }
18125 #endif
18126 
18127 
18128 
18129   public:
18130     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
18131     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
18132     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
18133     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18134     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18135     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18136     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18137     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18138     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18139 
18140   };
18141   static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" );
18142   static_assert( std::is_standard_layout<AttachmentDescription>::value, "struct wrapper is not a standard layout!" );
18143 
18144   struct AttachmentDescription2
18145   {
18146     static const bool allowDuplicate = false;
18147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
18148 
18149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription218150     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
18151     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
18152     {}
18153 
18154     VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18155 
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription218156     AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18157     {
18158       *this = rhs;
18159     }
18160 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18161 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription218162     AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18163     {
18164       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>( &rhs );
18165       return *this;
18166     }
18167 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription218168     AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18169     {
18170       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescription2 ) );
18171       return *this;
18172     }
18173 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescription218174     AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18175     {
18176       pNext = pNext_;
18177       return *this;
18178     }
18179 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription218180     AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
18181     {
18182       flags = flags_;
18183       return *this;
18184     }
18185 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription218186     AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
18187     {
18188       format = format_;
18189       return *this;
18190     }
18191 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription218192     AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
18193     {
18194       samples = samples_;
18195       return *this;
18196     }
18197 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription218198     AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
18199     {
18200       loadOp = loadOp_;
18201       return *this;
18202     }
18203 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription218204     AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
18205     {
18206       storeOp = storeOp_;
18207       return *this;
18208     }
18209 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription218210     AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
18211     {
18212       stencilLoadOp = stencilLoadOp_;
18213       return *this;
18214     }
18215 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription218216     AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
18217     {
18218       stencilStoreOp = stencilStoreOp_;
18219       return *this;
18220     }
18221 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription218222     AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
18223     {
18224       initialLayout = initialLayout_;
18225       return *this;
18226     }
18227 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription218228     AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
18229     {
18230       finalLayout = finalLayout_;
18231       return *this;
18232     }
18233 
18234 
operator VkAttachmentDescription2 const&VULKAN_HPP_NAMESPACE::AttachmentDescription218235     operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT
18236     {
18237       return *reinterpret_cast<const VkAttachmentDescription2*>( this );
18238     }
18239 
operator VkAttachmentDescription2&VULKAN_HPP_NAMESPACE::AttachmentDescription218240     operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
18241     {
18242       return *reinterpret_cast<VkAttachmentDescription2*>( this );
18243     }
18244 
18245 
18246 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18247     auto operator<=>( AttachmentDescription2 const& ) const = default;
18248 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription218249     bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18250     {
18251       return ( sType == rhs.sType )
18252           && ( pNext == rhs.pNext )
18253           && ( flags == rhs.flags )
18254           && ( format == rhs.format )
18255           && ( samples == rhs.samples )
18256           && ( loadOp == rhs.loadOp )
18257           && ( storeOp == rhs.storeOp )
18258           && ( stencilLoadOp == rhs.stencilLoadOp )
18259           && ( stencilStoreOp == rhs.stencilStoreOp )
18260           && ( initialLayout == rhs.initialLayout )
18261           && ( finalLayout == rhs.finalLayout );
18262     }
18263 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription218264     bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18265     {
18266       return !operator==( rhs );
18267     }
18268 #endif
18269 
18270 
18271 
18272   public:
18273     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
18274     const void* pNext = {};
18275     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
18276     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
18277     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
18278     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18279     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18280     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18281     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18282     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18283     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18284 
18285   };
18286   static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" );
18287   static_assert( std::is_standard_layout<AttachmentDescription2>::value, "struct wrapper is not a standard layout!" );
18288 
18289   template <>
18290   struct CppType<StructureType, StructureType::eAttachmentDescription2>
18291   {
18292     using Type = AttachmentDescription2;
18293   };
18294   using AttachmentDescription2KHR = AttachmentDescription2;
18295 
18296   struct AttachmentDescriptionStencilLayout
18297   {
18298     static const bool allowDuplicate = false;
18299     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
18300 
18301 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18302     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
18303     : stencilInitialLayout( stencilInitialLayout_ ), stencilFinalLayout( stencilFinalLayout_ )
18304     {}
18305 
18306     VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18307 
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18308     AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18309     {
18310       *this = rhs;
18311     }
18312 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18313 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18314     AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18315     {
18316       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>( &rhs );
18317       return *this;
18318     }
18319 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18320     AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18321     {
18322       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescriptionStencilLayout ) );
18323       return *this;
18324     }
18325 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18326     AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
18327     {
18328       pNext = pNext_;
18329       return *this;
18330     }
18331 
setStencilInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18332     AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
18333     {
18334       stencilInitialLayout = stencilInitialLayout_;
18335       return *this;
18336     }
18337 
setStencilFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18338     AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
18339     {
18340       stencilFinalLayout = stencilFinalLayout_;
18341       return *this;
18342     }
18343 
18344 
operator VkAttachmentDescriptionStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18345     operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT
18346     {
18347       return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>( this );
18348     }
18349 
operator VkAttachmentDescriptionStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18350     operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
18351     {
18352       return *reinterpret_cast<VkAttachmentDescriptionStencilLayout*>( this );
18353     }
18354 
18355 
18356 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18357     auto operator<=>( AttachmentDescriptionStencilLayout const& ) const = default;
18358 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18359     bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18360     {
18361       return ( sType == rhs.sType )
18362           && ( pNext == rhs.pNext )
18363           && ( stencilInitialLayout == rhs.stencilInitialLayout )
18364           && ( stencilFinalLayout == rhs.stencilFinalLayout );
18365     }
18366 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18367     bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18368     {
18369       return !operator==( rhs );
18370     }
18371 #endif
18372 
18373 
18374 
18375   public:
18376     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
18377     void* pNext = {};
18378     VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18379     VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18380 
18381   };
18382   static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" );
18383   static_assert( std::is_standard_layout<AttachmentDescriptionStencilLayout>::value, "struct wrapper is not a standard layout!" );
18384 
18385   template <>
18386   struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
18387   {
18388     using Type = AttachmentDescriptionStencilLayout;
18389   };
18390   using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
18391 
18392   struct AttachmentReference
18393   {
18394 
18395 
18396 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference18397     VULKAN_HPP_CONSTEXPR AttachmentReference(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18398     : attachment( attachment_ ), layout( layout_ )
18399     {}
18400 
18401     VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18402 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference18403     AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18404     {
18405       *this = rhs;
18406     }
18407 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18408 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference18409     AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18410     {
18411       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>( &rhs );
18412       return *this;
18413     }
18414 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference18415     AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18416     {
18417       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReference ) );
18418       return *this;
18419     }
18420 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference18421     AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
18422     {
18423       attachment = attachment_;
18424       return *this;
18425     }
18426 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference18427     AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
18428     {
18429       layout = layout_;
18430       return *this;
18431     }
18432 
18433 
operator VkAttachmentReference const&VULKAN_HPP_NAMESPACE::AttachmentReference18434     operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT
18435     {
18436       return *reinterpret_cast<const VkAttachmentReference*>( this );
18437     }
18438 
operator VkAttachmentReference&VULKAN_HPP_NAMESPACE::AttachmentReference18439     operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
18440     {
18441       return *reinterpret_cast<VkAttachmentReference*>( this );
18442     }
18443 
18444 
18445 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18446     auto operator<=>( AttachmentReference const& ) const = default;
18447 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference18448     bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
18449     {
18450       return ( attachment == rhs.attachment )
18451           && ( layout == rhs.layout );
18452     }
18453 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference18454     bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
18455     {
18456       return !operator==( rhs );
18457     }
18458 #endif
18459 
18460 
18461 
18462   public:
18463     uint32_t attachment = {};
18464     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18465 
18466   };
18467   static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" );
18468   static_assert( std::is_standard_layout<AttachmentReference>::value, "struct wrapper is not a standard layout!" );
18469 
18470   struct AttachmentReference2
18471   {
18472     static const bool allowDuplicate = false;
18473     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
18474 
18475 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference218476     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
18477     : attachment( attachment_ ), layout( layout_ ), aspectMask( aspectMask_ )
18478     {}
18479 
18480     VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18481 
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference218482     AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18483     {
18484       *this = rhs;
18485     }
18486 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18487 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference218488     AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18489     {
18490       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>( &rhs );
18491       return *this;
18492     }
18493 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference218494     AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18495     {
18496       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReference2 ) );
18497       return *this;
18498     }
18499 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReference218500     AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18501     {
18502       pNext = pNext_;
18503       return *this;
18504     }
18505 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference218506     AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
18507     {
18508       attachment = attachment_;
18509       return *this;
18510     }
18511 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference218512     AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
18513     {
18514       layout = layout_;
18515       return *this;
18516     }
18517 
setAspectMaskVULKAN_HPP_NAMESPACE::AttachmentReference218518     AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
18519     {
18520       aspectMask = aspectMask_;
18521       return *this;
18522     }
18523 
18524 
operator VkAttachmentReference2 const&VULKAN_HPP_NAMESPACE::AttachmentReference218525     operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT
18526     {
18527       return *reinterpret_cast<const VkAttachmentReference2*>( this );
18528     }
18529 
operator VkAttachmentReference2&VULKAN_HPP_NAMESPACE::AttachmentReference218530     operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
18531     {
18532       return *reinterpret_cast<VkAttachmentReference2*>( this );
18533     }
18534 
18535 
18536 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18537     auto operator<=>( AttachmentReference2 const& ) const = default;
18538 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference218539     bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18540     {
18541       return ( sType == rhs.sType )
18542           && ( pNext == rhs.pNext )
18543           && ( attachment == rhs.attachment )
18544           && ( layout == rhs.layout )
18545           && ( aspectMask == rhs.aspectMask );
18546     }
18547 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference218548     bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18549     {
18550       return !operator==( rhs );
18551     }
18552 #endif
18553 
18554 
18555 
18556   public:
18557     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
18558     const void* pNext = {};
18559     uint32_t attachment = {};
18560     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18561     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
18562 
18563   };
18564   static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" );
18565   static_assert( std::is_standard_layout<AttachmentReference2>::value, "struct wrapper is not a standard layout!" );
18566 
18567   template <>
18568   struct CppType<StructureType, StructureType::eAttachmentReference2>
18569   {
18570     using Type = AttachmentReference2;
18571   };
18572   using AttachmentReference2KHR = AttachmentReference2;
18573 
18574   struct AttachmentReferenceStencilLayout
18575   {
18576     static const bool allowDuplicate = false;
18577     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
18578 
18579 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18580     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18581     : stencilLayout( stencilLayout_ )
18582     {}
18583 
18584     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18585 
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18586     AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18587     {
18588       *this = rhs;
18589     }
18590 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18591 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18592     AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18593     {
18594       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>( &rhs );
18595       return *this;
18596     }
18597 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18598     AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18599     {
18600       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReferenceStencilLayout ) );
18601       return *this;
18602     }
18603 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18604     AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
18605     {
18606       pNext = pNext_;
18607       return *this;
18608     }
18609 
setStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18610     AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
18611     {
18612       stencilLayout = stencilLayout_;
18613       return *this;
18614     }
18615 
18616 
operator VkAttachmentReferenceStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18617     operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT
18618     {
18619       return *reinterpret_cast<const VkAttachmentReferenceStencilLayout*>( this );
18620     }
18621 
operator VkAttachmentReferenceStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18622     operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
18623     {
18624       return *reinterpret_cast<VkAttachmentReferenceStencilLayout*>( this );
18625     }
18626 
18627 
18628 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18629     auto operator<=>( AttachmentReferenceStencilLayout const& ) const = default;
18630 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18631     bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18632     {
18633       return ( sType == rhs.sType )
18634           && ( pNext == rhs.pNext )
18635           && ( stencilLayout == rhs.stencilLayout );
18636     }
18637 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18638     bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18639     {
18640       return !operator==( rhs );
18641     }
18642 #endif
18643 
18644 
18645 
18646   public:
18647     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
18648     void* pNext = {};
18649     VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18650 
18651   };
18652   static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" );
18653   static_assert( std::is_standard_layout<AttachmentReferenceStencilLayout>::value, "struct wrapper is not a standard layout!" );
18654 
18655   template <>
18656   struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
18657   {
18658     using Type = AttachmentReferenceStencilLayout;
18659   };
18660   using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
18661 
18662   struct Extent2D
18663   {
18664 
18665 
18666 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent2DVULKAN_HPP_NAMESPACE::Extent2D18667     VULKAN_HPP_CONSTEXPR Extent2D(uint32_t width_ = {}, uint32_t height_ = {}) VULKAN_HPP_NOEXCEPT
18668     : width( width_ ), height( height_ )
18669     {}
18670 
18671     VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18672 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D18673     Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18674     {
18675       *this = rhs;
18676     }
18677 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18678 
operator =VULKAN_HPP_NAMESPACE::Extent2D18679     Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18680     {
18681       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>( &rhs );
18682       return *this;
18683     }
18684 
operator =VULKAN_HPP_NAMESPACE::Extent2D18685     Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18686     {
18687       memcpy( static_cast<void *>( this ), &rhs, sizeof( Extent2D ) );
18688       return *this;
18689     }
18690 
setWidthVULKAN_HPP_NAMESPACE::Extent2D18691     Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
18692     {
18693       width = width_;
18694       return *this;
18695     }
18696 
setHeightVULKAN_HPP_NAMESPACE::Extent2D18697     Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
18698     {
18699       height = height_;
18700       return *this;
18701     }
18702 
18703 
operator VkExtent2D const&VULKAN_HPP_NAMESPACE::Extent2D18704     operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT
18705     {
18706       return *reinterpret_cast<const VkExtent2D*>( this );
18707     }
18708 
operator VkExtent2D&VULKAN_HPP_NAMESPACE::Extent2D18709     operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
18710     {
18711       return *reinterpret_cast<VkExtent2D*>( this );
18712     }
18713 
18714 
18715 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18716     auto operator<=>( Extent2D const& ) const = default;
18717 #else
operator ==VULKAN_HPP_NAMESPACE::Extent2D18718     bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
18719     {
18720       return ( width == rhs.width )
18721           && ( height == rhs.height );
18722     }
18723 
operator !=VULKAN_HPP_NAMESPACE::Extent2D18724     bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
18725     {
18726       return !operator==( rhs );
18727     }
18728 #endif
18729 
18730 
18731 
18732   public:
18733     uint32_t width = {};
18734     uint32_t height = {};
18735 
18736   };
18737   static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" );
18738   static_assert( std::is_standard_layout<Extent2D>::value, "struct wrapper is not a standard layout!" );
18739 
18740   struct SampleLocationEXT
18741   {
18742 
18743 
18744 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT18745     VULKAN_HPP_CONSTEXPR SampleLocationEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
18746     : x( x_ ), y( y_ )
18747     {}
18748 
18749     VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18750 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT18751     SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18752     {
18753       *this = rhs;
18754     }
18755 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18756 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT18757     SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18758     {
18759       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>( &rhs );
18760       return *this;
18761     }
18762 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT18763     SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18764     {
18765       memcpy( static_cast<void *>( this ), &rhs, sizeof( SampleLocationEXT ) );
18766       return *this;
18767     }
18768 
setXVULKAN_HPP_NAMESPACE::SampleLocationEXT18769     SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
18770     {
18771       x = x_;
18772       return *this;
18773     }
18774 
setYVULKAN_HPP_NAMESPACE::SampleLocationEXT18775     SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
18776     {
18777       y = y_;
18778       return *this;
18779     }
18780 
18781 
operator VkSampleLocationEXT const&VULKAN_HPP_NAMESPACE::SampleLocationEXT18782     operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT
18783     {
18784       return *reinterpret_cast<const VkSampleLocationEXT*>( this );
18785     }
18786 
operator VkSampleLocationEXT&VULKAN_HPP_NAMESPACE::SampleLocationEXT18787     operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
18788     {
18789       return *reinterpret_cast<VkSampleLocationEXT*>( this );
18790     }
18791 
18792 
18793 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18794     auto operator<=>( SampleLocationEXT const& ) const = default;
18795 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationEXT18796     bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18797     {
18798       return ( x == rhs.x )
18799           && ( y == rhs.y );
18800     }
18801 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationEXT18802     bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18803     {
18804       return !operator==( rhs );
18805     }
18806 #endif
18807 
18808 
18809 
18810   public:
18811     float x = {};
18812     float y = {};
18813 
18814   };
18815   static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
18816   static_assert( std::is_standard_layout<SampleLocationEXT>::value, "struct wrapper is not a standard layout!" );
18817 
18818   struct SampleLocationsInfoEXT
18819   {
18820     static const bool allowDuplicate = false;
18821     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
18822 
18823 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18824     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
18825     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( sampleLocationsCount_ ), pSampleLocations( pSampleLocations_ )
18826     {}
18827 
18828     VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18829 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18830     SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18831     {
18832       *this = rhs;
18833     }
18834 
18835 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18836     SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ )
18837     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
18838     {}
18839 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
18840 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18841 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18842     SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18843     {
18844       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>( &rhs );
18845       return *this;
18846     }
18847 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18848     SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18849     {
18850       memcpy( static_cast<void *>( this ), &rhs, sizeof( SampleLocationsInfoEXT ) );
18851       return *this;
18852     }
18853 
setPNextVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18854     SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18855     {
18856       pNext = pNext_;
18857       return *this;
18858     }
18859 
setSampleLocationsPerPixelVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18860     SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
18861     {
18862       sampleLocationsPerPixel = sampleLocationsPerPixel_;
18863       return *this;
18864     }
18865 
setSampleLocationGridSizeVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18866     SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
18867     {
18868       sampleLocationGridSize = sampleLocationGridSize_;
18869       return *this;
18870     }
18871 
setSampleLocationsCountVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18872     SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
18873     {
18874       sampleLocationsCount = sampleLocationsCount_;
18875       return *this;
18876     }
18877 
setPSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18878     SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
18879     {
18880       pSampleLocations = pSampleLocations_;
18881       return *this;
18882     }
18883 
18884 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18885     SampleLocationsInfoEXT & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
18886     {
18887       sampleLocationsCount = static_cast<uint32_t>( sampleLocations_.size() );
18888       pSampleLocations = sampleLocations_.data();
18889       return *this;
18890     }
18891 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
18892 
18893 
operator VkSampleLocationsInfoEXT const&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18894     operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT
18895     {
18896       return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
18897     }
18898 
operator VkSampleLocationsInfoEXT&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18899     operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
18900     {
18901       return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
18902     }
18903 
18904 
18905 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18906     auto operator<=>( SampleLocationsInfoEXT const& ) const = default;
18907 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18908     bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18909     {
18910       return ( sType == rhs.sType )
18911           && ( pNext == rhs.pNext )
18912           && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
18913           && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
18914           && ( sampleLocationsCount == rhs.sampleLocationsCount )
18915           && ( pSampleLocations == rhs.pSampleLocations );
18916     }
18917 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18918     bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18919     {
18920       return !operator==( rhs );
18921     }
18922 #endif
18923 
18924 
18925 
18926   public:
18927     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
18928     const void* pNext = {};
18929     VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
18930     VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
18931     uint32_t sampleLocationsCount = {};
18932     const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {};
18933 
18934   };
18935   static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" );
18936   static_assert( std::is_standard_layout<SampleLocationsInfoEXT>::value, "struct wrapper is not a standard layout!" );
18937 
18938   template <>
18939   struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
18940   {
18941     using Type = SampleLocationsInfoEXT;
18942   };
18943 
18944   struct AttachmentSampleLocationsEXT
18945   {
18946 
18947 
18948 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18949     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT(uint32_t attachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
18950     : attachmentIndex( attachmentIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
18951     {}
18952 
18953     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18954 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18955     AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18956     {
18957       *this = rhs;
18958     }
18959 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18960 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18961     AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18962     {
18963       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>( &rhs );
18964       return *this;
18965     }
18966 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18967     AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18968     {
18969       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentSampleLocationsEXT ) );
18970       return *this;
18971     }
18972 
setAttachmentIndexVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18973     AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
18974     {
18975       attachmentIndex = attachmentIndex_;
18976       return *this;
18977     }
18978 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18979     AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
18980     {
18981       sampleLocationsInfo = sampleLocationsInfo_;
18982       return *this;
18983     }
18984 
18985 
operator VkAttachmentSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18986     operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
18987     {
18988       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
18989     }
18990 
operator VkAttachmentSampleLocationsEXT&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT18991     operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
18992     {
18993       return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
18994     }
18995 
18996 
18997 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18998     auto operator<=>( AttachmentSampleLocationsEXT const& ) const = default;
18999 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19000     bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19001     {
19002       return ( attachmentIndex == rhs.attachmentIndex )
19003           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
19004     }
19005 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19006     bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19007     {
19008       return !operator==( rhs );
19009     }
19010 #endif
19011 
19012 
19013 
19014   public:
19015     uint32_t attachmentIndex = {};
19016     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
19017 
19018   };
19019   static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" );
19020   static_assert( std::is_standard_layout<AttachmentSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
19021 
19022   struct BaseInStructure
19023   {
19024 
19025 
19026 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure19027     BaseInStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
19028     : sType( sType_ )
19029     {}
19030 
19031     BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19032 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure19033     BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19034     {
19035       *this = rhs;
19036     }
19037 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19038 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure19039     BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19040     {
19041       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>( &rhs );
19042       return *this;
19043     }
19044 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure19045     BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19046     {
19047       memcpy( static_cast<void *>( this ), &rhs, sizeof( BaseInStructure ) );
19048       return *this;
19049     }
19050 
setPNextVULKAN_HPP_NAMESPACE::BaseInStructure19051     BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
19052     {
19053       pNext = pNext_;
19054       return *this;
19055     }
19056 
19057 
operator VkBaseInStructure const&VULKAN_HPP_NAMESPACE::BaseInStructure19058     operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT
19059     {
19060       return *reinterpret_cast<const VkBaseInStructure*>( this );
19061     }
19062 
operator VkBaseInStructure&VULKAN_HPP_NAMESPACE::BaseInStructure19063     operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
19064     {
19065       return *reinterpret_cast<VkBaseInStructure*>( this );
19066     }
19067 
19068 
19069 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19070     auto operator<=>( BaseInStructure const& ) const = default;
19071 #else
operator ==VULKAN_HPP_NAMESPACE::BaseInStructure19072     bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19073     {
19074       return ( sType == rhs.sType )
19075           && ( pNext == rhs.pNext );
19076     }
19077 
operator !=VULKAN_HPP_NAMESPACE::BaseInStructure19078     bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19079     {
19080       return !operator==( rhs );
19081     }
19082 #endif
19083 
19084 
19085 
19086   public:
19087     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
19088     const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {};
19089 
19090   };
19091   static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" );
19092   static_assert( std::is_standard_layout<BaseInStructure>::value, "struct wrapper is not a standard layout!" );
19093 
19094   struct BaseOutStructure
19095   {
19096 
19097 
19098 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure19099     BaseOutStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
19100     : sType( sType_ )
19101     {}
19102 
19103     BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19104 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure19105     BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19106     {
19107       *this = rhs;
19108     }
19109 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19110 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure19111     BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19112     {
19113       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>( &rhs );
19114       return *this;
19115     }
19116 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure19117     BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19118     {
19119       memcpy( static_cast<void *>( this ), &rhs, sizeof( BaseOutStructure ) );
19120       return *this;
19121     }
19122 
setPNextVULKAN_HPP_NAMESPACE::BaseOutStructure19123     BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
19124     {
19125       pNext = pNext_;
19126       return *this;
19127     }
19128 
19129 
operator VkBaseOutStructure const&VULKAN_HPP_NAMESPACE::BaseOutStructure19130     operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT
19131     {
19132       return *reinterpret_cast<const VkBaseOutStructure*>( this );
19133     }
19134 
operator VkBaseOutStructure&VULKAN_HPP_NAMESPACE::BaseOutStructure19135     operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
19136     {
19137       return *reinterpret_cast<VkBaseOutStructure*>( this );
19138     }
19139 
19140 
19141 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19142     auto operator<=>( BaseOutStructure const& ) const = default;
19143 #else
operator ==VULKAN_HPP_NAMESPACE::BaseOutStructure19144     bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19145     {
19146       return ( sType == rhs.sType )
19147           && ( pNext == rhs.pNext );
19148     }
19149 
operator !=VULKAN_HPP_NAMESPACE::BaseOutStructure19150     bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19151     {
19152       return !operator==( rhs );
19153     }
19154 #endif
19155 
19156 
19157 
19158   public:
19159     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
19160     struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {};
19161 
19162   };
19163   static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" );
19164   static_assert( std::is_standard_layout<BaseOutStructure>::value, "struct wrapper is not a standard layout!" );
19165 
19166   class DeviceMemory
19167   {
19168   public:
19169     using CType = VkDeviceMemory;
19170 
19171     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory;
19172     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
19173 
19174   public:
DeviceMemory()19175     VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT
19176       : m_deviceMemory(VK_NULL_HANDLE)
19177     {}
19178 
DeviceMemory(std::nullptr_t)19179     VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19180       : m_deviceMemory(VK_NULL_HANDLE)
19181     {}
19182 
DeviceMemory(VkDeviceMemory deviceMemory)19183     VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT
19184       : m_deviceMemory( deviceMemory )
19185     {}
19186 
19187 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeviceMemory deviceMemory)19188     DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT
19189     {
19190       m_deviceMemory = deviceMemory;
19191       return *this;
19192     }
19193 #endif
19194 
operator =(std::nullptr_t)19195     DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19196     {
19197       m_deviceMemory = VK_NULL_HANDLE;
19198       return *this;
19199     }
19200 
19201 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19202     auto operator<=>( DeviceMemory const& ) const = default;
19203 #else
operator ==(DeviceMemory const & rhs) const19204     bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19205     {
19206       return m_deviceMemory == rhs.m_deviceMemory;
19207     }
19208 
operator !=(DeviceMemory const & rhs) const19209     bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19210     {
19211       return m_deviceMemory != rhs.m_deviceMemory;
19212     }
19213 
operator <(DeviceMemory const & rhs) const19214     bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19215     {
19216       return m_deviceMemory < rhs.m_deviceMemory;
19217     }
19218 #endif
19219 
operator VkDeviceMemory() const19220     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT
19221     {
19222       return m_deviceMemory;
19223     }
19224 
operator bool() const19225     explicit operator bool() const VULKAN_HPP_NOEXCEPT
19226     {
19227       return m_deviceMemory != VK_NULL_HANDLE;
19228     }
19229 
operator !() const19230     bool operator!() const VULKAN_HPP_NOEXCEPT
19231     {
19232       return m_deviceMemory == VK_NULL_HANDLE;
19233     }
19234 
19235   private:
19236     VkDeviceMemory m_deviceMemory;
19237   };
19238   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
19239 
19240   template <>
19241   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeviceMemory>
19242   {
19243     using type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19244   };
19245 
19246   template <>
19247   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory>
19248   {
19249     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19250   };
19251 
19252 
19253   template <>
19254   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory>
19255   {
19256     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19257   };
19258 
19259 
19260   template <>
19261   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeviceMemory>
19262   {
19263     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
19264   };
19265 
19266   struct BindAccelerationStructureMemoryInfoKHR
19267   {
19268     static const bool allowDuplicate = false;
19269     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
19270 
19271 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19272     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
19273     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
19274     {}
19275 
19276     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoKHR( BindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19277 
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19278     BindAccelerationStructureMemoryInfoKHR( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19279     {
19280       *this = rhs;
19281     }
19282 
19283 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19284     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_ )
19285     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
19286     {}
19287 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19288 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19289 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19290     BindAccelerationStructureMemoryInfoKHR & operator=( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19291     {
19292       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR const *>( &rhs );
19293       return *this;
19294     }
19295 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19296     BindAccelerationStructureMemoryInfoKHR & operator=( BindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19297     {
19298       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindAccelerationStructureMemoryInfoKHR ) );
19299       return *this;
19300     }
19301 
setPNextVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19302     BindAccelerationStructureMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19303     {
19304       pNext = pNext_;
19305       return *this;
19306     }
19307 
setAccelerationStructureVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19308     BindAccelerationStructureMemoryInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
19309     {
19310       accelerationStructure = accelerationStructure_;
19311       return *this;
19312     }
19313 
setMemoryVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19314     BindAccelerationStructureMemoryInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
19315     {
19316       memory = memory_;
19317       return *this;
19318     }
19319 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19320     BindAccelerationStructureMemoryInfoKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
19321     {
19322       memoryOffset = memoryOffset_;
19323       return *this;
19324     }
19325 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19326     BindAccelerationStructureMemoryInfoKHR & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19327     {
19328       deviceIndexCount = deviceIndexCount_;
19329       return *this;
19330     }
19331 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19332     BindAccelerationStructureMemoryInfoKHR & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19333     {
19334       pDeviceIndices = pDeviceIndices_;
19335       return *this;
19336     }
19337 
19338 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19339     BindAccelerationStructureMemoryInfoKHR & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19340     {
19341       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19342       pDeviceIndices = deviceIndices_.data();
19343       return *this;
19344     }
19345 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19346 
19347 
operator VkBindAccelerationStructureMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19348     operator VkBindAccelerationStructureMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
19349     {
19350       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( this );
19351     }
19352 
operator VkBindAccelerationStructureMemoryInfoKHR&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19353     operator VkBindAccelerationStructureMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
19354     {
19355       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoKHR*>( this );
19356     }
19357 
19358 
19359 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19360     auto operator<=>( BindAccelerationStructureMemoryInfoKHR const& ) const = default;
19361 #else
operator ==VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19362     bool operator==( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19363     {
19364       return ( sType == rhs.sType )
19365           && ( pNext == rhs.pNext )
19366           && ( accelerationStructure == rhs.accelerationStructure )
19367           && ( memory == rhs.memory )
19368           && ( memoryOffset == rhs.memoryOffset )
19369           && ( deviceIndexCount == rhs.deviceIndexCount )
19370           && ( pDeviceIndices == rhs.pDeviceIndices );
19371     }
19372 
operator !=VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19373     bool operator!=( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19374     {
19375       return !operator==( rhs );
19376     }
19377 #endif
19378 
19379 
19380 
19381   public:
19382     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
19383     const void* pNext = {};
19384     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
19385     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
19386     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
19387     uint32_t deviceIndexCount = {};
19388     const uint32_t* pDeviceIndices = {};
19389 
19390   };
19391   static_assert( sizeof( BindAccelerationStructureMemoryInfoKHR ) == sizeof( VkBindAccelerationStructureMemoryInfoKHR ), "struct and wrapper have different size!" );
19392   static_assert( std::is_standard_layout<BindAccelerationStructureMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
19393 
19394   template <>
19395   struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoKHR>
19396   {
19397     using Type = BindAccelerationStructureMemoryInfoKHR;
19398   };
19399   using BindAccelerationStructureMemoryInfoNV = BindAccelerationStructureMemoryInfoKHR;
19400 
19401   struct BindBufferMemoryDeviceGroupInfo
19402   {
19403     static const bool allowDuplicate = false;
19404     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
19405 
19406 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19407     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
19408     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
19409     {}
19410 
19411     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19412 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19413     BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19414     {
19415       *this = rhs;
19416     }
19417 
19418 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19419     BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ )
19420     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
19421     {}
19422 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19423 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19424 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19425     BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19426     {
19427       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>( &rhs );
19428       return *this;
19429     }
19430 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19431     BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19432     {
19433       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindBufferMemoryDeviceGroupInfo ) );
19434       return *this;
19435     }
19436 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19437     BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19438     {
19439       pNext = pNext_;
19440       return *this;
19441     }
19442 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19443     BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19444     {
19445       deviceIndexCount = deviceIndexCount_;
19446       return *this;
19447     }
19448 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19449     BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19450     {
19451       pDeviceIndices = pDeviceIndices_;
19452       return *this;
19453     }
19454 
19455 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19456     BindBufferMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19457     {
19458       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19459       pDeviceIndices = deviceIndices_.data();
19460       return *this;
19461     }
19462 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19463 
19464 
operator VkBindBufferMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19465     operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
19466     {
19467       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
19468     }
19469 
operator VkBindBufferMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19470     operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
19471     {
19472       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
19473     }
19474 
19475 
19476 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19477     auto operator<=>( BindBufferMemoryDeviceGroupInfo const& ) const = default;
19478 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19479     bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19480     {
19481       return ( sType == rhs.sType )
19482           && ( pNext == rhs.pNext )
19483           && ( deviceIndexCount == rhs.deviceIndexCount )
19484           && ( pDeviceIndices == rhs.pDeviceIndices );
19485     }
19486 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19487     bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19488     {
19489       return !operator==( rhs );
19490     }
19491 #endif
19492 
19493 
19494 
19495   public:
19496     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
19497     const void* pNext = {};
19498     uint32_t deviceIndexCount = {};
19499     const uint32_t* pDeviceIndices = {};
19500 
19501   };
19502   static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
19503   static_assert( std::is_standard_layout<BindBufferMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
19504 
19505   template <>
19506   struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
19507   {
19508     using Type = BindBufferMemoryDeviceGroupInfo;
19509   };
19510   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
19511 
19512   struct BindBufferMemoryInfo
19513   {
19514     static const bool allowDuplicate = false;
19515     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
19516 
19517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19518     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
19519     : buffer( buffer_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
19520     {}
19521 
19522     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19523 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19524     BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19525     {
19526       *this = rhs;
19527     }
19528 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19529 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19530     BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19531     {
19532       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>( &rhs );
19533       return *this;
19534     }
19535 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19536     BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19537     {
19538       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindBufferMemoryInfo ) );
19539       return *this;
19540     }
19541 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19542     BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19543     {
19544       pNext = pNext_;
19545       return *this;
19546     }
19547 
setBufferVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19548     BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
19549     {
19550       buffer = buffer_;
19551       return *this;
19552     }
19553 
setMemoryVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19554     BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
19555     {
19556       memory = memory_;
19557       return *this;
19558     }
19559 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19560     BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
19561     {
19562       memoryOffset = memoryOffset_;
19563       return *this;
19564     }
19565 
19566 
operator VkBindBufferMemoryInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19567     operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
19568     {
19569       return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
19570     }
19571 
operator VkBindBufferMemoryInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19572     operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
19573     {
19574       return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
19575     }
19576 
19577 
19578 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19579     auto operator<=>( BindBufferMemoryInfo const& ) const = default;
19580 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19581     bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19582     {
19583       return ( sType == rhs.sType )
19584           && ( pNext == rhs.pNext )
19585           && ( buffer == rhs.buffer )
19586           && ( memory == rhs.memory )
19587           && ( memoryOffset == rhs.memoryOffset );
19588     }
19589 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19590     bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19591     {
19592       return !operator==( rhs );
19593     }
19594 #endif
19595 
19596 
19597 
19598   public:
19599     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
19600     const void* pNext = {};
19601     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
19602     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
19603     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
19604 
19605   };
19606   static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" );
19607   static_assert( std::is_standard_layout<BindBufferMemoryInfo>::value, "struct wrapper is not a standard layout!" );
19608 
19609   template <>
19610   struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
19611   {
19612     using Type = BindBufferMemoryInfo;
19613   };
19614   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
19615 
19616   struct Offset2D
19617   {
19618 
19619 
19620 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset2DVULKAN_HPP_NAMESPACE::Offset2D19621     VULKAN_HPP_CONSTEXPR Offset2D(int32_t x_ = {}, int32_t y_ = {}) VULKAN_HPP_NOEXCEPT
19622     : x( x_ ), y( y_ )
19623     {}
19624 
19625     VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19626 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D19627     Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19628     {
19629       *this = rhs;
19630     }
19631 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19632 
operator =VULKAN_HPP_NAMESPACE::Offset2D19633     Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19634     {
19635       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>( &rhs );
19636       return *this;
19637     }
19638 
operator =VULKAN_HPP_NAMESPACE::Offset2D19639     Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19640     {
19641       memcpy( static_cast<void *>( this ), &rhs, sizeof( Offset2D ) );
19642       return *this;
19643     }
19644 
setXVULKAN_HPP_NAMESPACE::Offset2D19645     Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
19646     {
19647       x = x_;
19648       return *this;
19649     }
19650 
setYVULKAN_HPP_NAMESPACE::Offset2D19651     Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
19652     {
19653       y = y_;
19654       return *this;
19655     }
19656 
19657 
operator VkOffset2D const&VULKAN_HPP_NAMESPACE::Offset2D19658     operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT
19659     {
19660       return *reinterpret_cast<const VkOffset2D*>( this );
19661     }
19662 
operator VkOffset2D&VULKAN_HPP_NAMESPACE::Offset2D19663     operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
19664     {
19665       return *reinterpret_cast<VkOffset2D*>( this );
19666     }
19667 
19668 
19669 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19670     auto operator<=>( Offset2D const& ) const = default;
19671 #else
operator ==VULKAN_HPP_NAMESPACE::Offset2D19672     bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19673     {
19674       return ( x == rhs.x )
19675           && ( y == rhs.y );
19676     }
19677 
operator !=VULKAN_HPP_NAMESPACE::Offset2D19678     bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19679     {
19680       return !operator==( rhs );
19681     }
19682 #endif
19683 
19684 
19685 
19686   public:
19687     int32_t x = {};
19688     int32_t y = {};
19689 
19690   };
19691   static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" );
19692   static_assert( std::is_standard_layout<Offset2D>::value, "struct wrapper is not a standard layout!" );
19693 
19694   struct Rect2D
19695   {
19696 
19697 
19698 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Rect2DVULKAN_HPP_NAMESPACE::Rect2D19699     VULKAN_HPP_CONSTEXPR Rect2D(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}) VULKAN_HPP_NOEXCEPT
19700     : offset( offset_ ), extent( extent_ )
19701     {}
19702 
19703     VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19704 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D19705     Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19706     {
19707       *this = rhs;
19708     }
19709 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19710 
operator =VULKAN_HPP_NAMESPACE::Rect2D19711     Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19712     {
19713       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>( &rhs );
19714       return *this;
19715     }
19716 
operator =VULKAN_HPP_NAMESPACE::Rect2D19717     Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19718     {
19719       memcpy( static_cast<void *>( this ), &rhs, sizeof( Rect2D ) );
19720       return *this;
19721     }
19722 
setOffsetVULKAN_HPP_NAMESPACE::Rect2D19723     Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
19724     {
19725       offset = offset_;
19726       return *this;
19727     }
19728 
setExtentVULKAN_HPP_NAMESPACE::Rect2D19729     Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
19730     {
19731       extent = extent_;
19732       return *this;
19733     }
19734 
19735 
operator VkRect2D const&VULKAN_HPP_NAMESPACE::Rect2D19736     operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT
19737     {
19738       return *reinterpret_cast<const VkRect2D*>( this );
19739     }
19740 
operator VkRect2D&VULKAN_HPP_NAMESPACE::Rect2D19741     operator VkRect2D &() VULKAN_HPP_NOEXCEPT
19742     {
19743       return *reinterpret_cast<VkRect2D*>( this );
19744     }
19745 
19746 
19747 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19748     auto operator<=>( Rect2D const& ) const = default;
19749 #else
operator ==VULKAN_HPP_NAMESPACE::Rect2D19750     bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19751     {
19752       return ( offset == rhs.offset )
19753           && ( extent == rhs.extent );
19754     }
19755 
operator !=VULKAN_HPP_NAMESPACE::Rect2D19756     bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19757     {
19758       return !operator==( rhs );
19759     }
19760 #endif
19761 
19762 
19763 
19764   public:
19765     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
19766     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
19767 
19768   };
19769   static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" );
19770   static_assert( std::is_standard_layout<Rect2D>::value, "struct wrapper is not a standard layout!" );
19771 
19772   struct BindImageMemoryDeviceGroupInfo
19773   {
19774     static const bool allowDuplicate = false;
19775     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
19776 
19777 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19778     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}, uint32_t splitInstanceBindRegionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {}) VULKAN_HPP_NOEXCEPT
19779     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ), splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ), pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
19780     {}
19781 
19782     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19783 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19784     BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19785     {
19786       *this = rhs;
19787     }
19788 
19789 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19790     BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ = {} )
19791     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ), splitInstanceBindRegionCount( static_cast<uint32_t>( splitInstanceBindRegions_.size() ) ), pSplitInstanceBindRegions( splitInstanceBindRegions_.data() )
19792     {}
19793 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19794 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19795 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19796     BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19797     {
19798       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>( &rhs );
19799       return *this;
19800     }
19801 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19802     BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19803     {
19804       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemoryDeviceGroupInfo ) );
19805       return *this;
19806     }
19807 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19808     BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19809     {
19810       pNext = pNext_;
19811       return *this;
19812     }
19813 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19814     BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19815     {
19816       deviceIndexCount = deviceIndexCount_;
19817       return *this;
19818     }
19819 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19820     BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19821     {
19822       pDeviceIndices = pDeviceIndices_;
19823       return *this;
19824     }
19825 
19826 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19827     BindImageMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19828     {
19829       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19830       pDeviceIndices = deviceIndices_.data();
19831       return *this;
19832     }
19833 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19834 
setSplitInstanceBindRegionCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19835     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
19836     {
19837       splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
19838       return *this;
19839     }
19840 
setPSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19841     BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
19842     {
19843       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
19844       return *this;
19845     }
19846 
19847 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19848     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
19849     {
19850       splitInstanceBindRegionCount = static_cast<uint32_t>( splitInstanceBindRegions_.size() );
19851       pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
19852       return *this;
19853     }
19854 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19855 
19856 
operator VkBindImageMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19857     operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
19858     {
19859       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
19860     }
19861 
operator VkBindImageMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19862     operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
19863     {
19864       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
19865     }
19866 
19867 
19868 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19869     auto operator<=>( BindImageMemoryDeviceGroupInfo const& ) const = default;
19870 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19871     bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19872     {
19873       return ( sType == rhs.sType )
19874           && ( pNext == rhs.pNext )
19875           && ( deviceIndexCount == rhs.deviceIndexCount )
19876           && ( pDeviceIndices == rhs.pDeviceIndices )
19877           && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
19878           && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
19879     }
19880 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19881     bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19882     {
19883       return !operator==( rhs );
19884     }
19885 #endif
19886 
19887 
19888 
19889   public:
19890     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
19891     const void* pNext = {};
19892     uint32_t deviceIndexCount = {};
19893     const uint32_t* pDeviceIndices = {};
19894     uint32_t splitInstanceBindRegionCount = {};
19895     const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {};
19896 
19897   };
19898   static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
19899   static_assert( std::is_standard_layout<BindImageMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
19900 
19901   template <>
19902   struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
19903   {
19904     using Type = BindImageMemoryDeviceGroupInfo;
19905   };
19906   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
19907 
19908   class Image
19909   {
19910   public:
19911     using CType = VkImage;
19912 
19913     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage;
19914     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
19915 
19916   public:
Image()19917     VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT
19918       : m_image(VK_NULL_HANDLE)
19919     {}
19920 
Image(std::nullptr_t)19921     VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19922       : m_image(VK_NULL_HANDLE)
19923     {}
19924 
Image(VkImage image)19925     VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT
19926       : m_image( image )
19927     {}
19928 
19929 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImage image)19930     Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT
19931     {
19932       m_image = image;
19933       return *this;
19934     }
19935 #endif
19936 
operator =(std::nullptr_t)19937     Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19938     {
19939       m_image = VK_NULL_HANDLE;
19940       return *this;
19941     }
19942 
19943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19944     auto operator<=>( Image const& ) const = default;
19945 #else
operator ==(Image const & rhs) const19946     bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT
19947     {
19948       return m_image == rhs.m_image;
19949     }
19950 
operator !=(Image const & rhs) const19951     bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
19952     {
19953       return m_image != rhs.m_image;
19954     }
19955 
operator <(Image const & rhs) const19956     bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
19957     {
19958       return m_image < rhs.m_image;
19959     }
19960 #endif
19961 
operator VkImage() const19962     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT
19963     {
19964       return m_image;
19965     }
19966 
operator bool() const19967     explicit operator bool() const VULKAN_HPP_NOEXCEPT
19968     {
19969       return m_image != VK_NULL_HANDLE;
19970     }
19971 
operator !() const19972     bool operator!() const VULKAN_HPP_NOEXCEPT
19973     {
19974       return m_image == VK_NULL_HANDLE;
19975     }
19976 
19977   private:
19978     VkImage m_image;
19979   };
19980   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
19981 
19982   template <>
19983   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImage>
19984   {
19985     using type = VULKAN_HPP_NAMESPACE::Image;
19986   };
19987 
19988   template <>
19989   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImage>
19990   {
19991     using Type = VULKAN_HPP_NAMESPACE::Image;
19992   };
19993 
19994 
19995   template <>
19996   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage>
19997   {
19998     using Type = VULKAN_HPP_NAMESPACE::Image;
19999   };
20000 
20001 
20002   template <>
20003   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Image>
20004   {
20005     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
20006   };
20007 
20008   struct BindImageMemoryInfo
20009   {
20010     static const bool allowDuplicate = false;
20011     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
20012 
20013 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20014     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
20015     : image( image_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
20016     {}
20017 
20018     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20019 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20020     BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20021     {
20022       *this = rhs;
20023     }
20024 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20025 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20026     BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20027     {
20028       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>( &rhs );
20029       return *this;
20030     }
20031 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20032     BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20033     {
20034       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemoryInfo ) );
20035       return *this;
20036     }
20037 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20038     BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20039     {
20040       pNext = pNext_;
20041       return *this;
20042     }
20043 
setImageVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20044     BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20045     {
20046       image = image_;
20047       return *this;
20048     }
20049 
setMemoryVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20050     BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20051     {
20052       memory = memory_;
20053       return *this;
20054     }
20055 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20056     BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20057     {
20058       memoryOffset = memoryOffset_;
20059       return *this;
20060     }
20061 
20062 
operator VkBindImageMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20063     operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
20064     {
20065       return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
20066     }
20067 
operator VkBindImageMemoryInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20068     operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
20069     {
20070       return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
20071     }
20072 
20073 
20074 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20075     auto operator<=>( BindImageMemoryInfo const& ) const = default;
20076 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20077     bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20078     {
20079       return ( sType == rhs.sType )
20080           && ( pNext == rhs.pNext )
20081           && ( image == rhs.image )
20082           && ( memory == rhs.memory )
20083           && ( memoryOffset == rhs.memoryOffset );
20084     }
20085 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20086     bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20087     {
20088       return !operator==( rhs );
20089     }
20090 #endif
20091 
20092 
20093 
20094   public:
20095     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
20096     const void* pNext = {};
20097     VULKAN_HPP_NAMESPACE::Image image = {};
20098     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20099     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20100 
20101   };
20102   static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" );
20103   static_assert( std::is_standard_layout<BindImageMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20104 
20105   template <>
20106   struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
20107   {
20108     using Type = BindImageMemoryInfo;
20109   };
20110   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
20111 
20112   struct BindImageMemorySwapchainInfoKHR
20113   {
20114     static const bool allowDuplicate = false;
20115     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
20116 
20117 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20118     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndex_ = {}) VULKAN_HPP_NOEXCEPT
20119     : swapchain( swapchain_ ), imageIndex( imageIndex_ )
20120     {}
20121 
20122     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20123 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20124     BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20125     {
20126       *this = rhs;
20127     }
20128 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20129 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20130     BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20131     {
20132       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>( &rhs );
20133       return *this;
20134     }
20135 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20136     BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20137     {
20138       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemorySwapchainInfoKHR ) );
20139       return *this;
20140     }
20141 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20142     BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20143     {
20144       pNext = pNext_;
20145       return *this;
20146     }
20147 
setSwapchainVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20148     BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
20149     {
20150       swapchain = swapchain_;
20151       return *this;
20152     }
20153 
setImageIndexVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20154     BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
20155     {
20156       imageIndex = imageIndex_;
20157       return *this;
20158     }
20159 
20160 
operator VkBindImageMemorySwapchainInfoKHR const&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20161     operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT
20162     {
20163       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
20164     }
20165 
operator VkBindImageMemorySwapchainInfoKHR&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20166     operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
20167     {
20168       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
20169     }
20170 
20171 
20172 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20173     auto operator<=>( BindImageMemorySwapchainInfoKHR const& ) const = default;
20174 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20175     bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
20176     {
20177       return ( sType == rhs.sType )
20178           && ( pNext == rhs.pNext )
20179           && ( swapchain == rhs.swapchain )
20180           && ( imageIndex == rhs.imageIndex );
20181     }
20182 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20183     bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
20184     {
20185       return !operator==( rhs );
20186     }
20187 #endif
20188 
20189 
20190 
20191   public:
20192     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
20193     const void* pNext = {};
20194     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
20195     uint32_t imageIndex = {};
20196 
20197   };
20198   static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" );
20199   static_assert( std::is_standard_layout<BindImageMemorySwapchainInfoKHR>::value, "struct wrapper is not a standard layout!" );
20200 
20201   template <>
20202   struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
20203   {
20204     using Type = BindImageMemorySwapchainInfoKHR;
20205   };
20206 
20207   struct BindImagePlaneMemoryInfo
20208   {
20209     static const bool allowDuplicate = false;
20210     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
20211 
20212 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20213     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
20214     : planeAspect( planeAspect_ )
20215     {}
20216 
20217     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20218 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20219     BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20220     {
20221       *this = rhs;
20222     }
20223 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20224 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20225     BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20226     {
20227       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>( &rhs );
20228       return *this;
20229     }
20230 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20231     BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20232     {
20233       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImagePlaneMemoryInfo ) );
20234       return *this;
20235     }
20236 
setPNextVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20237     BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20238     {
20239       pNext = pNext_;
20240       return *this;
20241     }
20242 
setPlaneAspectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20243     BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
20244     {
20245       planeAspect = planeAspect_;
20246       return *this;
20247     }
20248 
20249 
operator VkBindImagePlaneMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20250     operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
20251     {
20252       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
20253     }
20254 
operator VkBindImagePlaneMemoryInfo&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20255     operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
20256     {
20257       return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
20258     }
20259 
20260 
20261 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20262     auto operator<=>( BindImagePlaneMemoryInfo const& ) const = default;
20263 #else
operator ==VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20264     bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20265     {
20266       return ( sType == rhs.sType )
20267           && ( pNext == rhs.pNext )
20268           && ( planeAspect == rhs.planeAspect );
20269     }
20270 
operator !=VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20271     bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20272     {
20273       return !operator==( rhs );
20274     }
20275 #endif
20276 
20277 
20278 
20279   public:
20280     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
20281     const void* pNext = {};
20282     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
20283 
20284   };
20285   static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" );
20286   static_assert( std::is_standard_layout<BindImagePlaneMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20287 
20288   template <>
20289   struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
20290   {
20291     using Type = BindImagePlaneMemoryInfo;
20292   };
20293   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
20294 
20295   struct BindIndexBufferIndirectCommandNV
20296   {
20297 
20298 
20299 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20300     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
20301     : bufferAddress( bufferAddress_ ), size( size_ ), indexType( indexType_ )
20302     {}
20303 
20304     VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20305 
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20306     BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20307     {
20308       *this = rhs;
20309     }
20310 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20311 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20312     BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20313     {
20314       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>( &rhs );
20315       return *this;
20316     }
20317 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20318     BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20319     {
20320       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindIndexBufferIndirectCommandNV ) );
20321       return *this;
20322     }
20323 
setBufferAddressVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20324     BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
20325     {
20326       bufferAddress = bufferAddress_;
20327       return *this;
20328     }
20329 
setSizeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20330     BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
20331     {
20332       size = size_;
20333       return *this;
20334     }
20335 
setIndexTypeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20336     BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
20337     {
20338       indexType = indexType_;
20339       return *this;
20340     }
20341 
20342 
operator VkBindIndexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20343     operator VkBindIndexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
20344     {
20345       return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV*>( this );
20346     }
20347 
operator VkBindIndexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20348     operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
20349     {
20350       return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV*>( this );
20351     }
20352 
20353 
20354 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20355     auto operator<=>( BindIndexBufferIndirectCommandNV const& ) const = default;
20356 #else
operator ==VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20357     bool operator==( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20358     {
20359       return ( bufferAddress == rhs.bufferAddress )
20360           && ( size == rhs.size )
20361           && ( indexType == rhs.indexType );
20362     }
20363 
operator !=VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20364     bool operator!=( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20365     {
20366       return !operator==( rhs );
20367     }
20368 #endif
20369 
20370 
20371 
20372   public:
20373     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
20374     uint32_t size = {};
20375     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
20376 
20377   };
20378   static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
20379   static_assert( std::is_standard_layout<BindIndexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
20380 
20381   struct BindShaderGroupIndirectCommandNV
20382   {
20383 
20384 
20385 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20386     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV(uint32_t groupIndex_ = {}) VULKAN_HPP_NOEXCEPT
20387     : groupIndex( groupIndex_ )
20388     {}
20389 
20390     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20391 
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20392     BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20393     {
20394       *this = rhs;
20395     }
20396 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20397 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20398     BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20399     {
20400       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>( &rhs );
20401       return *this;
20402     }
20403 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20404     BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20405     {
20406       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindShaderGroupIndirectCommandNV ) );
20407       return *this;
20408     }
20409 
setGroupIndexVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20410     BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
20411     {
20412       groupIndex = groupIndex_;
20413       return *this;
20414     }
20415 
20416 
operator VkBindShaderGroupIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20417     operator VkBindShaderGroupIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
20418     {
20419       return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV*>( this );
20420     }
20421 
operator VkBindShaderGroupIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20422     operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
20423     {
20424       return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV*>( this );
20425     }
20426 
20427 
20428 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20429     auto operator<=>( BindShaderGroupIndirectCommandNV const& ) const = default;
20430 #else
operator ==VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20431     bool operator==( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20432     {
20433       return ( groupIndex == rhs.groupIndex );
20434     }
20435 
operator !=VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20436     bool operator!=( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20437     {
20438       return !operator==( rhs );
20439     }
20440 #endif
20441 
20442 
20443 
20444   public:
20445     uint32_t groupIndex = {};
20446 
20447   };
20448   static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), "struct and wrapper have different size!" );
20449   static_assert( std::is_standard_layout<BindShaderGroupIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
20450 
20451   struct SparseMemoryBind
20452   {
20453 
20454 
20455 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind20456     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
20457     : resourceOffset( resourceOffset_ ), size( size_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
20458     {}
20459 
20460     VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20461 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind20462     SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20463     {
20464       *this = rhs;
20465     }
20466 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20467 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind20468     SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20469     {
20470       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>( &rhs );
20471       return *this;
20472     }
20473 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind20474     SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20475     {
20476       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseMemoryBind ) );
20477       return *this;
20478     }
20479 
setResourceOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind20480     SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
20481     {
20482       resourceOffset = resourceOffset_;
20483       return *this;
20484     }
20485 
setSizeVULKAN_HPP_NAMESPACE::SparseMemoryBind20486     SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
20487     {
20488       size = size_;
20489       return *this;
20490     }
20491 
setMemoryVULKAN_HPP_NAMESPACE::SparseMemoryBind20492     SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20493     {
20494       memory = memory_;
20495       return *this;
20496     }
20497 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind20498     SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20499     {
20500       memoryOffset = memoryOffset_;
20501       return *this;
20502     }
20503 
setFlagsVULKAN_HPP_NAMESPACE::SparseMemoryBind20504     SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
20505     {
20506       flags = flags_;
20507       return *this;
20508     }
20509 
20510 
operator VkSparseMemoryBind const&VULKAN_HPP_NAMESPACE::SparseMemoryBind20511     operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT
20512     {
20513       return *reinterpret_cast<const VkSparseMemoryBind*>( this );
20514     }
20515 
operator VkSparseMemoryBind&VULKAN_HPP_NAMESPACE::SparseMemoryBind20516     operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
20517     {
20518       return *reinterpret_cast<VkSparseMemoryBind*>( this );
20519     }
20520 
20521 
20522 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20523     auto operator<=>( SparseMemoryBind const& ) const = default;
20524 #else
operator ==VULKAN_HPP_NAMESPACE::SparseMemoryBind20525     bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
20526     {
20527       return ( resourceOffset == rhs.resourceOffset )
20528           && ( size == rhs.size )
20529           && ( memory == rhs.memory )
20530           && ( memoryOffset == rhs.memoryOffset )
20531           && ( flags == rhs.flags );
20532     }
20533 
operator !=VULKAN_HPP_NAMESPACE::SparseMemoryBind20534     bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
20535     {
20536       return !operator==( rhs );
20537     }
20538 #endif
20539 
20540 
20541 
20542   public:
20543     VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
20544     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
20545     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20546     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20547     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
20548 
20549   };
20550   static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" );
20551   static_assert( std::is_standard_layout<SparseMemoryBind>::value, "struct wrapper is not a standard layout!" );
20552 
20553   struct SparseBufferMemoryBindInfo
20554   {
20555 
20556 
20557 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20558     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
20559     : buffer( buffer_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
20560     {}
20561 
20562     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20563 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20564     SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20565     {
20566       *this = rhs;
20567     }
20568 
20569 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20570     SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
20571     : buffer( buffer_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
20572     {}
20573 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20574 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20575 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20576     SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20577     {
20578       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>( &rhs );
20579       return *this;
20580     }
20581 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20582     SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20583     {
20584       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseBufferMemoryBindInfo ) );
20585       return *this;
20586     }
20587 
setBufferVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20588     SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
20589     {
20590       buffer = buffer_;
20591       return *this;
20592     }
20593 
setBindCountVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20594     SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
20595     {
20596       bindCount = bindCount_;
20597       return *this;
20598     }
20599 
setPBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20600     SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
20601     {
20602       pBinds = pBinds_;
20603       return *this;
20604     }
20605 
20606 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20607     SparseBufferMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
20608     {
20609       bindCount = static_cast<uint32_t>( binds_.size() );
20610       pBinds = binds_.data();
20611       return *this;
20612     }
20613 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20614 
20615 
operator VkSparseBufferMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20616     operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
20617     {
20618       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
20619     }
20620 
operator VkSparseBufferMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20621     operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
20622     {
20623       return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
20624     }
20625 
20626 
20627 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20628     auto operator<=>( SparseBufferMemoryBindInfo const& ) const = default;
20629 #else
operator ==VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20630     bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20631     {
20632       return ( buffer == rhs.buffer )
20633           && ( bindCount == rhs.bindCount )
20634           && ( pBinds == rhs.pBinds );
20635     }
20636 
operator !=VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20637     bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20638     {
20639       return !operator==( rhs );
20640     }
20641 #endif
20642 
20643 
20644 
20645   public:
20646     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
20647     uint32_t bindCount = {};
20648     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
20649 
20650   };
20651   static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" );
20652   static_assert( std::is_standard_layout<SparseBufferMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
20653 
20654   struct SparseImageOpaqueMemoryBindInfo
20655   {
20656 
20657 
20658 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20659     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
20660     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
20661     {}
20662 
20663     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20664 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20665     SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20666     {
20667       *this = rhs;
20668     }
20669 
20670 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20671     SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
20672     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
20673     {}
20674 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20675 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20676 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20677     SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20678     {
20679       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>( &rhs );
20680       return *this;
20681     }
20682 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20683     SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20684     {
20685       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageOpaqueMemoryBindInfo ) );
20686       return *this;
20687     }
20688 
setImageVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20689     SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20690     {
20691       image = image_;
20692       return *this;
20693     }
20694 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20695     SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
20696     {
20697       bindCount = bindCount_;
20698       return *this;
20699     }
20700 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20701     SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
20702     {
20703       pBinds = pBinds_;
20704       return *this;
20705     }
20706 
20707 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20708     SparseImageOpaqueMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
20709     {
20710       bindCount = static_cast<uint32_t>( binds_.size() );
20711       pBinds = binds_.data();
20712       return *this;
20713     }
20714 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20715 
20716 
operator VkSparseImageOpaqueMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20717     operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
20718     {
20719       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
20720     }
20721 
operator VkSparseImageOpaqueMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20722     operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
20723     {
20724       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
20725     }
20726 
20727 
20728 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20729     auto operator<=>( SparseImageOpaqueMemoryBindInfo const& ) const = default;
20730 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20731     bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20732     {
20733       return ( image == rhs.image )
20734           && ( bindCount == rhs.bindCount )
20735           && ( pBinds == rhs.pBinds );
20736     }
20737 
operator !=VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20738     bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20739     {
20740       return !operator==( rhs );
20741     }
20742 #endif
20743 
20744 
20745 
20746   public:
20747     VULKAN_HPP_NAMESPACE::Image image = {};
20748     uint32_t bindCount = {};
20749     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
20750 
20751   };
20752   static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" );
20753   static_assert( std::is_standard_layout<SparseImageOpaqueMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
20754 
20755   struct ImageSubresource
20756   {
20757 
20758 
20759 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource20760     VULKAN_HPP_CONSTEXPR ImageSubresource(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {}) VULKAN_HPP_NOEXCEPT
20761     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), arrayLayer( arrayLayer_ )
20762     {}
20763 
20764     VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20765 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource20766     ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20767     {
20768       *this = rhs;
20769     }
20770 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20771 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource20772     ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20773     {
20774       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>( &rhs );
20775       return *this;
20776     }
20777 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource20778     ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20779     {
20780       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresource ) );
20781       return *this;
20782     }
20783 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresource20784     ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
20785     {
20786       aspectMask = aspectMask_;
20787       return *this;
20788     }
20789 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresource20790     ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
20791     {
20792       mipLevel = mipLevel_;
20793       return *this;
20794     }
20795 
setArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresource20796     ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
20797     {
20798       arrayLayer = arrayLayer_;
20799       return *this;
20800     }
20801 
20802 
operator VkImageSubresource const&VULKAN_HPP_NAMESPACE::ImageSubresource20803     operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT
20804     {
20805       return *reinterpret_cast<const VkImageSubresource*>( this );
20806     }
20807 
operator VkImageSubresource&VULKAN_HPP_NAMESPACE::ImageSubresource20808     operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
20809     {
20810       return *reinterpret_cast<VkImageSubresource*>( this );
20811     }
20812 
20813 
20814 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20815     auto operator<=>( ImageSubresource const& ) const = default;
20816 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource20817     bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
20818     {
20819       return ( aspectMask == rhs.aspectMask )
20820           && ( mipLevel == rhs.mipLevel )
20821           && ( arrayLayer == rhs.arrayLayer );
20822     }
20823 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource20824     bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
20825     {
20826       return !operator==( rhs );
20827     }
20828 #endif
20829 
20830 
20831 
20832   public:
20833     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
20834     uint32_t mipLevel = {};
20835     uint32_t arrayLayer = {};
20836 
20837   };
20838   static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" );
20839   static_assert( std::is_standard_layout<ImageSubresource>::value, "struct wrapper is not a standard layout!" );
20840 
20841   struct Offset3D
20842   {
20843 
20844 
20845 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset3DVULKAN_HPP_NAMESPACE::Offset3D20846     VULKAN_HPP_CONSTEXPR Offset3D(int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {}) VULKAN_HPP_NOEXCEPT
20847     : x( x_ ), y( y_ ), z( z_ )
20848     {}
20849 
20850     VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20851 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D20852     Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
20853     {
20854       *this = rhs;
20855     }
20856 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D20857     explicit Offset3D( Offset2D const& offset2D, int32_t z_ = {} )
20858       : x( offset2D.x )
20859       , y( offset2D.y )
20860       , z( z_ )
20861     {}
20862 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20863 
operator =VULKAN_HPP_NAMESPACE::Offset3D20864     Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
20865     {
20866       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>( &rhs );
20867       return *this;
20868     }
20869 
operator =VULKAN_HPP_NAMESPACE::Offset3D20870     Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT
20871     {
20872       memcpy( static_cast<void *>( this ), &rhs, sizeof( Offset3D ) );
20873       return *this;
20874     }
20875 
setXVULKAN_HPP_NAMESPACE::Offset3D20876     Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
20877     {
20878       x = x_;
20879       return *this;
20880     }
20881 
setYVULKAN_HPP_NAMESPACE::Offset3D20882     Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
20883     {
20884       y = y_;
20885       return *this;
20886     }
20887 
setZVULKAN_HPP_NAMESPACE::Offset3D20888     Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
20889     {
20890       z = z_;
20891       return *this;
20892     }
20893 
20894 
operator VkOffset3D const&VULKAN_HPP_NAMESPACE::Offset3D20895     operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT
20896     {
20897       return *reinterpret_cast<const VkOffset3D*>( this );
20898     }
20899 
operator VkOffset3D&VULKAN_HPP_NAMESPACE::Offset3D20900     operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
20901     {
20902       return *reinterpret_cast<VkOffset3D*>( this );
20903     }
20904 
20905 
20906 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20907     auto operator<=>( Offset3D const& ) const = default;
20908 #else
operator ==VULKAN_HPP_NAMESPACE::Offset3D20909     bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
20910     {
20911       return ( x == rhs.x )
20912           && ( y == rhs.y )
20913           && ( z == rhs.z );
20914     }
20915 
operator !=VULKAN_HPP_NAMESPACE::Offset3D20916     bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
20917     {
20918       return !operator==( rhs );
20919     }
20920 #endif
20921 
20922 
20923 
20924   public:
20925     int32_t x = {};
20926     int32_t y = {};
20927     int32_t z = {};
20928 
20929   };
20930   static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" );
20931   static_assert( std::is_standard_layout<Offset3D>::value, "struct wrapper is not a standard layout!" );
20932 
20933   struct Extent3D
20934   {
20935 
20936 
20937 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent3DVULKAN_HPP_NAMESPACE::Extent3D20938     VULKAN_HPP_CONSTEXPR Extent3D(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
20939     : width( width_ ), height( height_ ), depth( depth_ )
20940     {}
20941 
20942     VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20943 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D20944     Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
20945     {
20946       *this = rhs;
20947     }
20948 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D20949     explicit Extent3D( Extent2D const& extent2D, uint32_t depth_ = {} )
20950       : width( extent2D.width )
20951       , height( extent2D.height )
20952       , depth( depth_ )
20953     {}
20954 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20955 
operator =VULKAN_HPP_NAMESPACE::Extent3D20956     Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
20957     {
20958       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>( &rhs );
20959       return *this;
20960     }
20961 
operator =VULKAN_HPP_NAMESPACE::Extent3D20962     Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT
20963     {
20964       memcpy( static_cast<void *>( this ), &rhs, sizeof( Extent3D ) );
20965       return *this;
20966     }
20967 
setWidthVULKAN_HPP_NAMESPACE::Extent3D20968     Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
20969     {
20970       width = width_;
20971       return *this;
20972     }
20973 
setHeightVULKAN_HPP_NAMESPACE::Extent3D20974     Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
20975     {
20976       height = height_;
20977       return *this;
20978     }
20979 
setDepthVULKAN_HPP_NAMESPACE::Extent3D20980     Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
20981     {
20982       depth = depth_;
20983       return *this;
20984     }
20985 
20986 
operator VkExtent3D const&VULKAN_HPP_NAMESPACE::Extent3D20987     operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT
20988     {
20989       return *reinterpret_cast<const VkExtent3D*>( this );
20990     }
20991 
operator VkExtent3D&VULKAN_HPP_NAMESPACE::Extent3D20992     operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
20993     {
20994       return *reinterpret_cast<VkExtent3D*>( this );
20995     }
20996 
20997 
20998 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20999     auto operator<=>( Extent3D const& ) const = default;
21000 #else
operator ==VULKAN_HPP_NAMESPACE::Extent3D21001     bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21002     {
21003       return ( width == rhs.width )
21004           && ( height == rhs.height )
21005           && ( depth == rhs.depth );
21006     }
21007 
operator !=VULKAN_HPP_NAMESPACE::Extent3D21008     bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21009     {
21010       return !operator==( rhs );
21011     }
21012 #endif
21013 
21014 
21015 
21016   public:
21017     uint32_t width = {};
21018     uint32_t height = {};
21019     uint32_t depth = {};
21020 
21021   };
21022   static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" );
21023   static_assert( std::is_standard_layout<Extent3D>::value, "struct wrapper is not a standard layout!" );
21024 
21025   struct SparseImageMemoryBind
21026   {
21027 
21028 
21029 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21030     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
21031     : subresource( subresource_ ), offset( offset_ ), extent( extent_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
21032     {}
21033 
21034     VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21035 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21036     SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21037     {
21038       *this = rhs;
21039     }
21040 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21041 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21042     SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21043     {
21044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>( &rhs );
21045       return *this;
21046     }
21047 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21048     SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21049     {
21050       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryBind ) );
21051       return *this;
21052     }
21053 
setSubresourceVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21054     SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
21055     {
21056       subresource = subresource_;
21057       return *this;
21058     }
21059 
setOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21060     SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
21061     {
21062       offset = offset_;
21063       return *this;
21064     }
21065 
setExtentVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21066     SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
21067     {
21068       extent = extent_;
21069       return *this;
21070     }
21071 
setMemoryVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21072     SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
21073     {
21074       memory = memory_;
21075       return *this;
21076     }
21077 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21078     SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
21079     {
21080       memoryOffset = memoryOffset_;
21081       return *this;
21082     }
21083 
setFlagsVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21084     SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
21085     {
21086       flags = flags_;
21087       return *this;
21088     }
21089 
21090 
operator VkSparseImageMemoryBind const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21091     operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT
21092     {
21093       return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
21094     }
21095 
operator VkSparseImageMemoryBind&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21096     operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
21097     {
21098       return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
21099     }
21100 
21101 
21102 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21103     auto operator<=>( SparseImageMemoryBind const& ) const = default;
21104 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21105     bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21106     {
21107       return ( subresource == rhs.subresource )
21108           && ( offset == rhs.offset )
21109           && ( extent == rhs.extent )
21110           && ( memory == rhs.memory )
21111           && ( memoryOffset == rhs.memoryOffset )
21112           && ( flags == rhs.flags );
21113     }
21114 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21115     bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21116     {
21117       return !operator==( rhs );
21118     }
21119 #endif
21120 
21121 
21122 
21123   public:
21124     VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
21125     VULKAN_HPP_NAMESPACE::Offset3D offset = {};
21126     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
21127     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
21128     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
21129     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
21130 
21131   };
21132   static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" );
21133   static_assert( std::is_standard_layout<SparseImageMemoryBind>::value, "struct wrapper is not a standard layout!" );
21134 
21135   struct SparseImageMemoryBindInfo
21136   {
21137 
21138 
21139 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21140     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
21141     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
21142     {}
21143 
21144     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21145 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21146     SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21147     {
21148       *this = rhs;
21149     }
21150 
21151 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21152     SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
21153     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
21154     {}
21155 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21156 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21157 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21158     SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21159     {
21160       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>( &rhs );
21161       return *this;
21162     }
21163 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21164     SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21165     {
21166       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryBindInfo ) );
21167       return *this;
21168     }
21169 
setImageVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21170     SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
21171     {
21172       image = image_;
21173       return *this;
21174     }
21175 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21176     SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
21177     {
21178       bindCount = bindCount_;
21179       return *this;
21180     }
21181 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21182     SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
21183     {
21184       pBinds = pBinds_;
21185       return *this;
21186     }
21187 
21188 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21189     SparseImageMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
21190     {
21191       bindCount = static_cast<uint32_t>( binds_.size() );
21192       pBinds = binds_.data();
21193       return *this;
21194     }
21195 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21196 
21197 
operator VkSparseImageMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21198     operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
21199     {
21200       return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
21201     }
21202 
operator VkSparseImageMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21203     operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
21204     {
21205       return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
21206     }
21207 
21208 
21209 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21210     auto operator<=>( SparseImageMemoryBindInfo const& ) const = default;
21211 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21212     bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21213     {
21214       return ( image == rhs.image )
21215           && ( bindCount == rhs.bindCount )
21216           && ( pBinds == rhs.pBinds );
21217     }
21218 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21219     bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21220     {
21221       return !operator==( rhs );
21222     }
21223 #endif
21224 
21225 
21226 
21227   public:
21228     VULKAN_HPP_NAMESPACE::Image image = {};
21229     uint32_t bindCount = {};
21230     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {};
21231 
21232   };
21233   static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" );
21234   static_assert( std::is_standard_layout<SparseImageMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21235 
21236   struct BindSparseInfo
21237   {
21238     static const bool allowDuplicate = false;
21239     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
21240 
21241 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21242     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
21243     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), bufferBindCount( bufferBindCount_ ), pBufferBinds( pBufferBinds_ ), imageOpaqueBindCount( imageOpaqueBindCount_ ), pImageOpaqueBinds( pImageOpaqueBinds_ ), imageBindCount( imageBindCount_ ), pImageBinds( pImageBinds_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
21244     {}
21245 
21246     VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21247 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21248     BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21249     {
21250       *this = rhs;
21251     }
21252 
21253 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21254     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_ = {} )
21255     : 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() )
21256     {}
21257 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21258 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21259 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo21260     BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21261     {
21262       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>( &rhs );
21263       return *this;
21264     }
21265 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo21266     BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21267     {
21268       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindSparseInfo ) );
21269       return *this;
21270     }
21271 
setPNextVULKAN_HPP_NAMESPACE::BindSparseInfo21272     BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21273     {
21274       pNext = pNext_;
21275       return *this;
21276     }
21277 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21278     BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
21279     {
21280       waitSemaphoreCount = waitSemaphoreCount_;
21281       return *this;
21282     }
21283 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21284     BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
21285     {
21286       pWaitSemaphores = pWaitSemaphores_;
21287       return *this;
21288     }
21289 
21290 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21291     BindSparseInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
21292     {
21293       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
21294       pWaitSemaphores = waitSemaphores_.data();
21295       return *this;
21296     }
21297 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21298 
setBufferBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21299     BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
21300     {
21301       bufferBindCount = bufferBindCount_;
21302       return *this;
21303     }
21304 
setPBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21305     BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
21306     {
21307       pBufferBinds = pBufferBinds_;
21308       return *this;
21309     }
21310 
21311 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21312     BindSparseInfo & setBufferBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT
21313     {
21314       bufferBindCount = static_cast<uint32_t>( bufferBinds_.size() );
21315       pBufferBinds = bufferBinds_.data();
21316       return *this;
21317     }
21318 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21319 
setImageOpaqueBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21320     BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
21321     {
21322       imageOpaqueBindCount = imageOpaqueBindCount_;
21323       return *this;
21324     }
21325 
setPImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21326     BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
21327     {
21328       pImageOpaqueBinds = pImageOpaqueBinds_;
21329       return *this;
21330     }
21331 
21332 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21333     BindSparseInfo & setImageOpaqueBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
21334     {
21335       imageOpaqueBindCount = static_cast<uint32_t>( imageOpaqueBinds_.size() );
21336       pImageOpaqueBinds = imageOpaqueBinds_.data();
21337       return *this;
21338     }
21339 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21340 
setImageBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21341     BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
21342     {
21343       imageBindCount = imageBindCount_;
21344       return *this;
21345     }
21346 
setPImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21347     BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT
21348     {
21349       pImageBinds = pImageBinds_;
21350       return *this;
21351     }
21352 
21353 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21354     BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ ) VULKAN_HPP_NOEXCEPT
21355     {
21356       imageBindCount = static_cast<uint32_t>( imageBinds_.size() );
21357       pImageBinds = imageBinds_.data();
21358       return *this;
21359     }
21360 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21361 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21362     BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
21363     {
21364       signalSemaphoreCount = signalSemaphoreCount_;
21365       return *this;
21366     }
21367 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21368     BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
21369     {
21370       pSignalSemaphores = pSignalSemaphores_;
21371       return *this;
21372     }
21373 
21374 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21375     BindSparseInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
21376     {
21377       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
21378       pSignalSemaphores = signalSemaphores_.data();
21379       return *this;
21380     }
21381 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21382 
21383 
operator VkBindSparseInfo const&VULKAN_HPP_NAMESPACE::BindSparseInfo21384     operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
21385     {
21386       return *reinterpret_cast<const VkBindSparseInfo*>( this );
21387     }
21388 
operator VkBindSparseInfo&VULKAN_HPP_NAMESPACE::BindSparseInfo21389     operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
21390     {
21391       return *reinterpret_cast<VkBindSparseInfo*>( this );
21392     }
21393 
21394 
21395 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21396     auto operator<=>( BindSparseInfo const& ) const = default;
21397 #else
operator ==VULKAN_HPP_NAMESPACE::BindSparseInfo21398     bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21399     {
21400       return ( sType == rhs.sType )
21401           && ( pNext == rhs.pNext )
21402           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
21403           && ( pWaitSemaphores == rhs.pWaitSemaphores )
21404           && ( bufferBindCount == rhs.bufferBindCount )
21405           && ( pBufferBinds == rhs.pBufferBinds )
21406           && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
21407           && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
21408           && ( imageBindCount == rhs.imageBindCount )
21409           && ( pImageBinds == rhs.pImageBinds )
21410           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
21411           && ( pSignalSemaphores == rhs.pSignalSemaphores );
21412     }
21413 
operator !=VULKAN_HPP_NAMESPACE::BindSparseInfo21414     bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21415     {
21416       return !operator==( rhs );
21417     }
21418 #endif
21419 
21420 
21421 
21422   public:
21423     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
21424     const void* pNext = {};
21425     uint32_t waitSemaphoreCount = {};
21426     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
21427     uint32_t bufferBindCount = {};
21428     const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {};
21429     uint32_t imageOpaqueBindCount = {};
21430     const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {};
21431     uint32_t imageBindCount = {};
21432     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {};
21433     uint32_t signalSemaphoreCount = {};
21434     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
21435 
21436   };
21437   static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" );
21438   static_assert( std::is_standard_layout<BindSparseInfo>::value, "struct wrapper is not a standard layout!" );
21439 
21440   template <>
21441   struct CppType<StructureType, StructureType::eBindSparseInfo>
21442   {
21443     using Type = BindSparseInfo;
21444   };
21445 
21446   struct BindVertexBufferIndirectCommandNV
21447   {
21448 
21449 
21450 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21451     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, uint32_t stride_ = {}) VULKAN_HPP_NOEXCEPT
21452     : bufferAddress( bufferAddress_ ), size( size_ ), stride( stride_ )
21453     {}
21454 
21455     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21456 
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21457     BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21458     {
21459       *this = rhs;
21460     }
21461 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21462 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21463     BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21464     {
21465       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>( &rhs );
21466       return *this;
21467     }
21468 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21469     BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21470     {
21471       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindVertexBufferIndirectCommandNV ) );
21472       return *this;
21473     }
21474 
setBufferAddressVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21475     BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
21476     {
21477       bufferAddress = bufferAddress_;
21478       return *this;
21479     }
21480 
setSizeVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21481     BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
21482     {
21483       size = size_;
21484       return *this;
21485     }
21486 
setStrideVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21487     BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
21488     {
21489       stride = stride_;
21490       return *this;
21491     }
21492 
21493 
operator VkBindVertexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21494     operator VkBindVertexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
21495     {
21496       return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV*>( this );
21497     }
21498 
operator VkBindVertexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21499     operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
21500     {
21501       return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV*>( this );
21502     }
21503 
21504 
21505 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21506     auto operator<=>( BindVertexBufferIndirectCommandNV const& ) const = default;
21507 #else
operator ==VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21508     bool operator==( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21509     {
21510       return ( bufferAddress == rhs.bufferAddress )
21511           && ( size == rhs.size )
21512           && ( stride == rhs.stride );
21513     }
21514 
operator !=VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21515     bool operator!=( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21516     {
21517       return !operator==( rhs );
21518     }
21519 #endif
21520 
21521 
21522 
21523   public:
21524     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
21525     uint32_t size = {};
21526     uint32_t stride = {};
21527 
21528   };
21529   static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
21530   static_assert( std::is_standard_layout<BindVertexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
21531 
21532   struct ImageSubresourceLayers
21533   {
21534 
21535 
21536 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21537     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
21538     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
21539     {}
21540 
21541     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21542 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21543     ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21544     {
21545       *this = rhs;
21546     }
21547 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21548 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21549     ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21550     {
21551       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>( &rhs );
21552       return *this;
21553     }
21554 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21555     ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21556     {
21557       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresourceLayers ) );
21558       return *this;
21559     }
21560 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21561     ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
21562     {
21563       aspectMask = aspectMask_;
21564       return *this;
21565     }
21566 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21567     ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
21568     {
21569       mipLevel = mipLevel_;
21570       return *this;
21571     }
21572 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21573     ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
21574     {
21575       baseArrayLayer = baseArrayLayer_;
21576       return *this;
21577     }
21578 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21579     ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
21580     {
21581       layerCount = layerCount_;
21582       return *this;
21583     }
21584 
21585 
operator VkImageSubresourceLayers const&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21586     operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT
21587     {
21588       return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
21589     }
21590 
operator VkImageSubresourceLayers&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21591     operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
21592     {
21593       return *reinterpret_cast<VkImageSubresourceLayers*>( this );
21594     }
21595 
21596 
21597 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21598     auto operator<=>( ImageSubresourceLayers const& ) const = default;
21599 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21600     bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
21601     {
21602       return ( aspectMask == rhs.aspectMask )
21603           && ( mipLevel == rhs.mipLevel )
21604           && ( baseArrayLayer == rhs.baseArrayLayer )
21605           && ( layerCount == rhs.layerCount );
21606     }
21607 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21608     bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
21609     {
21610       return !operator==( rhs );
21611     }
21612 #endif
21613 
21614 
21615 
21616   public:
21617     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
21618     uint32_t mipLevel = {};
21619     uint32_t baseArrayLayer = {};
21620     uint32_t layerCount = {};
21621 
21622   };
21623   static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" );
21624   static_assert( std::is_standard_layout<ImageSubresourceLayers>::value, "struct wrapper is not a standard layout!" );
21625 
21626   struct ImageBlit2KHR
21627   {
21628     static const bool allowDuplicate = false;
21629     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2KHR;
21630 
21631 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR21632     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
21633     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
21634     {}
21635 
21636     VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21637 
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR21638     ImageBlit2KHR( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21639     {
21640       *this = rhs;
21641     }
21642 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21643 
operator =VULKAN_HPP_NAMESPACE::ImageBlit2KHR21644     ImageBlit2KHR & operator=( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21645     {
21646       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit2KHR const *>( &rhs );
21647       return *this;
21648     }
21649 
operator =VULKAN_HPP_NAMESPACE::ImageBlit2KHR21650     ImageBlit2KHR & operator=( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21651     {
21652       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageBlit2KHR ) );
21653       return *this;
21654     }
21655 
setPNextVULKAN_HPP_NAMESPACE::ImageBlit2KHR21656     ImageBlit2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21657     {
21658       pNext = pNext_;
21659       return *this;
21660     }
21661 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR21662     ImageBlit2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
21663     {
21664       srcSubresource = srcSubresource_;
21665       return *this;
21666     }
21667 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR21668     ImageBlit2KHR & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
21669     {
21670       srcOffsets = srcOffsets_;
21671       return *this;
21672     }
21673 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR21674     ImageBlit2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
21675     {
21676       dstSubresource = dstSubresource_;
21677       return *this;
21678     }
21679 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR21680     ImageBlit2KHR & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
21681     {
21682       dstOffsets = dstOffsets_;
21683       return *this;
21684     }
21685 
21686 
operator VkImageBlit2KHR const&VULKAN_HPP_NAMESPACE::ImageBlit2KHR21687     operator VkImageBlit2KHR const&() const VULKAN_HPP_NOEXCEPT
21688     {
21689       return *reinterpret_cast<const VkImageBlit2KHR*>( this );
21690     }
21691 
operator VkImageBlit2KHR&VULKAN_HPP_NAMESPACE::ImageBlit2KHR21692     operator VkImageBlit2KHR &() VULKAN_HPP_NOEXCEPT
21693     {
21694       return *reinterpret_cast<VkImageBlit2KHR*>( this );
21695     }
21696 
21697 
21698 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21699     auto operator<=>( ImageBlit2KHR const& ) const = default;
21700 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit2KHR21701     bool operator==( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21702     {
21703       return ( sType == rhs.sType )
21704           && ( pNext == rhs.pNext )
21705           && ( srcSubresource == rhs.srcSubresource )
21706           && ( srcOffsets == rhs.srcOffsets )
21707           && ( dstSubresource == rhs.dstSubresource )
21708           && ( dstOffsets == rhs.dstOffsets );
21709     }
21710 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit2KHR21711     bool operator!=( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21712     {
21713       return !operator==( rhs );
21714     }
21715 #endif
21716 
21717 
21718 
21719   public:
21720     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2KHR;
21721     const void* pNext = {};
21722     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
21723     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
21724     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
21725     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
21726 
21727   };
21728   static_assert( sizeof( ImageBlit2KHR ) == sizeof( VkImageBlit2KHR ), "struct and wrapper have different size!" );
21729   static_assert( std::is_standard_layout<ImageBlit2KHR>::value, "struct wrapper is not a standard layout!" );
21730 
21731   template <>
21732   struct CppType<StructureType, StructureType::eImageBlit2KHR>
21733   {
21734     using Type = ImageBlit2KHR;
21735   };
21736 
21737   struct BlitImageInfo2KHR
21738   {
21739     static const bool allowDuplicate = false;
21740     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2KHR;
21741 
21742 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21743     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
21744     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ), filter( filter_ )
21745     {}
21746 
21747     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21748 
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21749     BlitImageInfo2KHR( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21750     {
21751       *this = rhs;
21752     }
21753 
21754 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21755     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 )
21756     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() ), filter( filter_ )
21757     {}
21758 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21759 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21760 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21761     BlitImageInfo2KHR & operator=( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21762     {
21763       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR const *>( &rhs );
21764       return *this;
21765     }
21766 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21767     BlitImageInfo2KHR & operator=( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21768     {
21769       memcpy( static_cast<void *>( this ), &rhs, sizeof( BlitImageInfo2KHR ) );
21770       return *this;
21771     }
21772 
setPNextVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21773     BlitImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21774     {
21775       pNext = pNext_;
21776       return *this;
21777     }
21778 
setSrcImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21779     BlitImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
21780     {
21781       srcImage = srcImage_;
21782       return *this;
21783     }
21784 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21785     BlitImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
21786     {
21787       srcImageLayout = srcImageLayout_;
21788       return *this;
21789     }
21790 
setDstImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21791     BlitImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
21792     {
21793       dstImage = dstImage_;
21794       return *this;
21795     }
21796 
setDstImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21797     BlitImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
21798     {
21799       dstImageLayout = dstImageLayout_;
21800       return *this;
21801     }
21802 
setRegionCountVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21803     BlitImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
21804     {
21805       regionCount = regionCount_;
21806       return *this;
21807     }
21808 
setPRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21809     BlitImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
21810     {
21811       pRegions = pRegions_;
21812       return *this;
21813     }
21814 
21815 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21816     BlitImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
21817     {
21818       regionCount = static_cast<uint32_t>( regions_.size() );
21819       pRegions = regions_.data();
21820       return *this;
21821     }
21822 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21823 
setFilterVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21824     BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
21825     {
21826       filter = filter_;
21827       return *this;
21828     }
21829 
21830 
operator VkBlitImageInfo2KHR const&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21831     operator VkBlitImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
21832     {
21833       return *reinterpret_cast<const VkBlitImageInfo2KHR*>( this );
21834     }
21835 
operator VkBlitImageInfo2KHR&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21836     operator VkBlitImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
21837     {
21838       return *reinterpret_cast<VkBlitImageInfo2KHR*>( this );
21839     }
21840 
21841 
21842 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21843     auto operator<=>( BlitImageInfo2KHR const& ) const = default;
21844 #else
operator ==VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21845     bool operator==( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21846     {
21847       return ( sType == rhs.sType )
21848           && ( pNext == rhs.pNext )
21849           && ( srcImage == rhs.srcImage )
21850           && ( srcImageLayout == rhs.srcImageLayout )
21851           && ( dstImage == rhs.dstImage )
21852           && ( dstImageLayout == rhs.dstImageLayout )
21853           && ( regionCount == rhs.regionCount )
21854           && ( pRegions == rhs.pRegions )
21855           && ( filter == rhs.filter );
21856     }
21857 
operator !=VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21858     bool operator!=( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21859     {
21860       return !operator==( rhs );
21861     }
21862 #endif
21863 
21864 
21865 
21866   public:
21867     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2KHR;
21868     const void* pNext = {};
21869     VULKAN_HPP_NAMESPACE::Image srcImage = {};
21870     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
21871     VULKAN_HPP_NAMESPACE::Image dstImage = {};
21872     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
21873     uint32_t regionCount = {};
21874     const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions = {};
21875     VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
21876 
21877   };
21878   static_assert( sizeof( BlitImageInfo2KHR ) == sizeof( VkBlitImageInfo2KHR ), "struct and wrapper have different size!" );
21879   static_assert( std::is_standard_layout<BlitImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
21880 
21881   template <>
21882   struct CppType<StructureType, StructureType::eBlitImageInfo2KHR>
21883   {
21884     using Type = BlitImageInfo2KHR;
21885   };
21886 
21887   struct BufferCopy
21888   {
21889 
21890 
21891 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy21892     VULKAN_HPP_CONSTEXPR BufferCopy(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
21893     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
21894     {}
21895 
21896     VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21897 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy21898     BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
21899     {
21900       *this = rhs;
21901     }
21902 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21903 
operator =VULKAN_HPP_NAMESPACE::BufferCopy21904     BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
21905     {
21906       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>( &rhs );
21907       return *this;
21908     }
21909 
operator =VULKAN_HPP_NAMESPACE::BufferCopy21910     BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
21911     {
21912       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCopy ) );
21913       return *this;
21914     }
21915 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy21916     BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
21917     {
21918       srcOffset = srcOffset_;
21919       return *this;
21920     }
21921 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy21922     BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
21923     {
21924       dstOffset = dstOffset_;
21925       return *this;
21926     }
21927 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy21928     BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
21929     {
21930       size = size_;
21931       return *this;
21932     }
21933 
21934 
operator VkBufferCopy const&VULKAN_HPP_NAMESPACE::BufferCopy21935     operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT
21936     {
21937       return *reinterpret_cast<const VkBufferCopy*>( this );
21938     }
21939 
operator VkBufferCopy&VULKAN_HPP_NAMESPACE::BufferCopy21940     operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
21941     {
21942       return *reinterpret_cast<VkBufferCopy*>( this );
21943     }
21944 
21945 
21946 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21947     auto operator<=>( BufferCopy const& ) const = default;
21948 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy21949     bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
21950     {
21951       return ( srcOffset == rhs.srcOffset )
21952           && ( dstOffset == rhs.dstOffset )
21953           && ( size == rhs.size );
21954     }
21955 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy21956     bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
21957     {
21958       return !operator==( rhs );
21959     }
21960 #endif
21961 
21962 
21963 
21964   public:
21965     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
21966     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
21967     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
21968 
21969   };
21970   static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" );
21971   static_assert( std::is_standard_layout<BufferCopy>::value, "struct wrapper is not a standard layout!" );
21972 
21973   struct BufferCopy2KHR
21974   {
21975     static const bool allowDuplicate = false;
21976     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2KHR;
21977 
21978 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR21979     VULKAN_HPP_CONSTEXPR BufferCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
21980     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
21981     {}
21982 
21983     VULKAN_HPP_CONSTEXPR BufferCopy2KHR( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21984 
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR21985     BufferCopy2KHR( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21986     {
21987       *this = rhs;
21988     }
21989 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21990 
operator =VULKAN_HPP_NAMESPACE::BufferCopy2KHR21991     BufferCopy2KHR & operator=( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21992     {
21993       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy2KHR const *>( &rhs );
21994       return *this;
21995     }
21996 
operator =VULKAN_HPP_NAMESPACE::BufferCopy2KHR21997     BufferCopy2KHR & operator=( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21998     {
21999       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCopy2KHR ) );
22000       return *this;
22001     }
22002 
setPNextVULKAN_HPP_NAMESPACE::BufferCopy2KHR22003     BufferCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22004     {
22005       pNext = pNext_;
22006       return *this;
22007     }
22008 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR22009     BufferCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
22010     {
22011       srcOffset = srcOffset_;
22012       return *this;
22013     }
22014 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR22015     BufferCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
22016     {
22017       dstOffset = dstOffset_;
22018       return *this;
22019     }
22020 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy2KHR22021     BufferCopy2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22022     {
22023       size = size_;
22024       return *this;
22025     }
22026 
22027 
operator VkBufferCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferCopy2KHR22028     operator VkBufferCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
22029     {
22030       return *reinterpret_cast<const VkBufferCopy2KHR*>( this );
22031     }
22032 
operator VkBufferCopy2KHR&VULKAN_HPP_NAMESPACE::BufferCopy2KHR22033     operator VkBufferCopy2KHR &() VULKAN_HPP_NOEXCEPT
22034     {
22035       return *reinterpret_cast<VkBufferCopy2KHR*>( this );
22036     }
22037 
22038 
22039 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22040     auto operator<=>( BufferCopy2KHR const& ) const = default;
22041 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy2KHR22042     bool operator==( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22043     {
22044       return ( sType == rhs.sType )
22045           && ( pNext == rhs.pNext )
22046           && ( srcOffset == rhs.srcOffset )
22047           && ( dstOffset == rhs.dstOffset )
22048           && ( size == rhs.size );
22049     }
22050 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy2KHR22051     bool operator!=( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22052     {
22053       return !operator==( rhs );
22054     }
22055 #endif
22056 
22057 
22058 
22059   public:
22060     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2KHR;
22061     const void* pNext = {};
22062     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
22063     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
22064     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22065 
22066   };
22067   static_assert( sizeof( BufferCopy2KHR ) == sizeof( VkBufferCopy2KHR ), "struct and wrapper have different size!" );
22068   static_assert( std::is_standard_layout<BufferCopy2KHR>::value, "struct wrapper is not a standard layout!" );
22069 
22070   template <>
22071   struct CppType<StructureType, StructureType::eBufferCopy2KHR>
22072   {
22073     using Type = BufferCopy2KHR;
22074   };
22075 
22076   struct BufferCreateInfo
22077   {
22078     static const bool allowDuplicate = false;
22079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
22080 
22081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22082     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
22083     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
22084     {}
22085 
22086     VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22087 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22088     BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22089     {
22090       *this = rhs;
22091     }
22092 
22093 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22094     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_ )
22095     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
22096     {}
22097 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22098 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22099 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo22100     BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22101     {
22102       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>( &rhs );
22103       return *this;
22104     }
22105 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo22106     BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22107     {
22108       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCreateInfo ) );
22109       return *this;
22110     }
22111 
setPNextVULKAN_HPP_NAMESPACE::BufferCreateInfo22112     BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22113     {
22114       pNext = pNext_;
22115       return *this;
22116     }
22117 
setFlagsVULKAN_HPP_NAMESPACE::BufferCreateInfo22118     BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
22119     {
22120       flags = flags_;
22121       return *this;
22122     }
22123 
setSizeVULKAN_HPP_NAMESPACE::BufferCreateInfo22124     BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22125     {
22126       size = size_;
22127       return *this;
22128     }
22129 
setUsageVULKAN_HPP_NAMESPACE::BufferCreateInfo22130     BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
22131     {
22132       usage = usage_;
22133       return *this;
22134     }
22135 
setSharingModeVULKAN_HPP_NAMESPACE::BufferCreateInfo22136     BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
22137     {
22138       sharingMode = sharingMode_;
22139       return *this;
22140     }
22141 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::BufferCreateInfo22142     BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
22143     {
22144       queueFamilyIndexCount = queueFamilyIndexCount_;
22145       return *this;
22146     }
22147 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo22148     BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
22149     {
22150       pQueueFamilyIndices = pQueueFamilyIndices_;
22151       return *this;
22152     }
22153 
22154 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo22155     BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
22156     {
22157       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
22158       pQueueFamilyIndices = queueFamilyIndices_.data();
22159       return *this;
22160     }
22161 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22162 
22163 
operator VkBufferCreateInfo const&VULKAN_HPP_NAMESPACE::BufferCreateInfo22164     operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
22165     {
22166       return *reinterpret_cast<const VkBufferCreateInfo*>( this );
22167     }
22168 
operator VkBufferCreateInfo&VULKAN_HPP_NAMESPACE::BufferCreateInfo22169     operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
22170     {
22171       return *reinterpret_cast<VkBufferCreateInfo*>( this );
22172     }
22173 
22174 
22175 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22176     auto operator<=>( BufferCreateInfo const& ) const = default;
22177 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCreateInfo22178     bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22179     {
22180       return ( sType == rhs.sType )
22181           && ( pNext == rhs.pNext )
22182           && ( flags == rhs.flags )
22183           && ( size == rhs.size )
22184           && ( usage == rhs.usage )
22185           && ( sharingMode == rhs.sharingMode )
22186           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
22187           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
22188     }
22189 
operator !=VULKAN_HPP_NAMESPACE::BufferCreateInfo22190     bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22191     {
22192       return !operator==( rhs );
22193     }
22194 #endif
22195 
22196 
22197 
22198   public:
22199     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
22200     const void* pNext = {};
22201     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
22202     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22203     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
22204     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
22205     uint32_t queueFamilyIndexCount = {};
22206     const uint32_t* pQueueFamilyIndices = {};
22207 
22208   };
22209   static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
22210   static_assert( std::is_standard_layout<BufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
22211 
22212   template <>
22213   struct CppType<StructureType, StructureType::eBufferCreateInfo>
22214   {
22215     using Type = BufferCreateInfo;
22216   };
22217 
22218   struct BufferDeviceAddressCreateInfoEXT
22219   {
22220     static const bool allowDuplicate = false;
22221     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
22222 
22223 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22224     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT
22225     : deviceAddress( deviceAddress_ )
22226     {}
22227 
22228     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22229 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22230     BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22231     {
22232       *this = rhs;
22233     }
22234 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22235 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22236     BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22237     {
22238       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>( &rhs );
22239       return *this;
22240     }
22241 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22242     BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22243     {
22244       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferDeviceAddressCreateInfoEXT ) );
22245       return *this;
22246     }
22247 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22248     BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22249     {
22250       pNext = pNext_;
22251       return *this;
22252     }
22253 
setDeviceAddressVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22254     BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
22255     {
22256       deviceAddress = deviceAddress_;
22257       return *this;
22258     }
22259 
22260 
operator VkBufferDeviceAddressCreateInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22261     operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
22262     {
22263       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
22264     }
22265 
operator VkBufferDeviceAddressCreateInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22266     operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
22267     {
22268       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
22269     }
22270 
22271 
22272 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22273     auto operator<=>( BufferDeviceAddressCreateInfoEXT const& ) const = default;
22274 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22275     bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
22276     {
22277       return ( sType == rhs.sType )
22278           && ( pNext == rhs.pNext )
22279           && ( deviceAddress == rhs.deviceAddress );
22280     }
22281 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22282     bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
22283     {
22284       return !operator==( rhs );
22285     }
22286 #endif
22287 
22288 
22289 
22290   public:
22291     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
22292     const void* pNext = {};
22293     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
22294 
22295   };
22296   static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" );
22297   static_assert( std::is_standard_layout<BufferDeviceAddressCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
22298 
22299   template <>
22300   struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
22301   {
22302     using Type = BufferDeviceAddressCreateInfoEXT;
22303   };
22304 
22305   struct BufferDeviceAddressInfo
22306   {
22307     static const bool allowDuplicate = false;
22308     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
22309 
22310 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22311     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
22312     : buffer( buffer_ )
22313     {}
22314 
22315     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22316 
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22317     BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22318     {
22319       *this = rhs;
22320     }
22321 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22322 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22323     BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22324     {
22325       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>( &rhs );
22326       return *this;
22327     }
22328 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22329     BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22330     {
22331       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferDeviceAddressInfo ) );
22332       return *this;
22333     }
22334 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22335     BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22336     {
22337       pNext = pNext_;
22338       return *this;
22339     }
22340 
setBufferVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22341     BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22342     {
22343       buffer = buffer_;
22344       return *this;
22345     }
22346 
22347 
operator VkBufferDeviceAddressInfo const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22348     operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT
22349     {
22350       return *reinterpret_cast<const VkBufferDeviceAddressInfo*>( this );
22351     }
22352 
operator VkBufferDeviceAddressInfo&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22353     operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
22354     {
22355       return *reinterpret_cast<VkBufferDeviceAddressInfo*>( this );
22356     }
22357 
22358 
22359 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22360     auto operator<=>( BufferDeviceAddressInfo const& ) const = default;
22361 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22362     bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22363     {
22364       return ( sType == rhs.sType )
22365           && ( pNext == rhs.pNext )
22366           && ( buffer == rhs.buffer );
22367     }
22368 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22369     bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22370     {
22371       return !operator==( rhs );
22372     }
22373 #endif
22374 
22375 
22376 
22377   public:
22378     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
22379     const void* pNext = {};
22380     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22381 
22382   };
22383   static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" );
22384   static_assert( std::is_standard_layout<BufferDeviceAddressInfo>::value, "struct wrapper is not a standard layout!" );
22385 
22386   template <>
22387   struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
22388   {
22389     using Type = BufferDeviceAddressInfo;
22390   };
22391   using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
22392   using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
22393 
22394   struct BufferImageCopy
22395   {
22396 
22397 
22398 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22399     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
22400     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
22401     {}
22402 
22403     VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22404 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22405     BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22406     {
22407       *this = rhs;
22408     }
22409 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22410 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy22411     BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22412     {
22413       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>( &rhs );
22414       return *this;
22415     }
22416 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy22417     BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22418     {
22419       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferImageCopy ) );
22420       return *this;
22421     }
22422 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22423     BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
22424     {
22425       bufferOffset = bufferOffset_;
22426       return *this;
22427     }
22428 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy22429     BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
22430     {
22431       bufferRowLength = bufferRowLength_;
22432       return *this;
22433     }
22434 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy22435     BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
22436     {
22437       bufferImageHeight = bufferImageHeight_;
22438       return *this;
22439     }
22440 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy22441     BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
22442     {
22443       imageSubresource = imageSubresource_;
22444       return *this;
22445     }
22446 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22447     BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
22448     {
22449       imageOffset = imageOffset_;
22450       return *this;
22451     }
22452 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy22453     BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
22454     {
22455       imageExtent = imageExtent_;
22456       return *this;
22457     }
22458 
22459 
operator VkBufferImageCopy const&VULKAN_HPP_NAMESPACE::BufferImageCopy22460     operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT
22461     {
22462       return *reinterpret_cast<const VkBufferImageCopy*>( this );
22463     }
22464 
operator VkBufferImageCopy&VULKAN_HPP_NAMESPACE::BufferImageCopy22465     operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
22466     {
22467       return *reinterpret_cast<VkBufferImageCopy*>( this );
22468     }
22469 
22470 
22471 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22472     auto operator<=>( BufferImageCopy const& ) const = default;
22473 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy22474     bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22475     {
22476       return ( bufferOffset == rhs.bufferOffset )
22477           && ( bufferRowLength == rhs.bufferRowLength )
22478           && ( bufferImageHeight == rhs.bufferImageHeight )
22479           && ( imageSubresource == rhs.imageSubresource )
22480           && ( imageOffset == rhs.imageOffset )
22481           && ( imageExtent == rhs.imageExtent );
22482     }
22483 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy22484     bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22485     {
22486       return !operator==( rhs );
22487     }
22488 #endif
22489 
22490 
22491 
22492   public:
22493     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
22494     uint32_t bufferRowLength = {};
22495     uint32_t bufferImageHeight = {};
22496     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
22497     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
22498     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
22499 
22500   };
22501   static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" );
22502   static_assert( std::is_standard_layout<BufferImageCopy>::value, "struct wrapper is not a standard layout!" );
22503 
22504   struct BufferImageCopy2KHR
22505   {
22506     static const bool allowDuplicate = false;
22507     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2KHR;
22508 
22509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22510     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
22511     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
22512     {}
22513 
22514     VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22515 
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22516     BufferImageCopy2KHR( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22517     {
22518       *this = rhs;
22519     }
22520 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22521 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22522     BufferImageCopy2KHR & operator=( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22523     {
22524       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR const *>( &rhs );
22525       return *this;
22526     }
22527 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22528     BufferImageCopy2KHR & operator=( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22529     {
22530       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferImageCopy2KHR ) );
22531       return *this;
22532     }
22533 
setPNextVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22534     BufferImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22535     {
22536       pNext = pNext_;
22537       return *this;
22538     }
22539 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22540     BufferImageCopy2KHR & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
22541     {
22542       bufferOffset = bufferOffset_;
22543       return *this;
22544     }
22545 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22546     BufferImageCopy2KHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
22547     {
22548       bufferRowLength = bufferRowLength_;
22549       return *this;
22550     }
22551 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22552     BufferImageCopy2KHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
22553     {
22554       bufferImageHeight = bufferImageHeight_;
22555       return *this;
22556     }
22557 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22558     BufferImageCopy2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
22559     {
22560       imageSubresource = imageSubresource_;
22561       return *this;
22562     }
22563 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22564     BufferImageCopy2KHR & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
22565     {
22566       imageOffset = imageOffset_;
22567       return *this;
22568     }
22569 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22570     BufferImageCopy2KHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
22571     {
22572       imageExtent = imageExtent_;
22573       return *this;
22574     }
22575 
22576 
operator VkBufferImageCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22577     operator VkBufferImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
22578     {
22579       return *reinterpret_cast<const VkBufferImageCopy2KHR*>( this );
22580     }
22581 
operator VkBufferImageCopy2KHR&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22582     operator VkBufferImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
22583     {
22584       return *reinterpret_cast<VkBufferImageCopy2KHR*>( this );
22585     }
22586 
22587 
22588 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22589     auto operator<=>( BufferImageCopy2KHR const& ) const = default;
22590 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22591     bool operator==( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22592     {
22593       return ( sType == rhs.sType )
22594           && ( pNext == rhs.pNext )
22595           && ( bufferOffset == rhs.bufferOffset )
22596           && ( bufferRowLength == rhs.bufferRowLength )
22597           && ( bufferImageHeight == rhs.bufferImageHeight )
22598           && ( imageSubresource == rhs.imageSubresource )
22599           && ( imageOffset == rhs.imageOffset )
22600           && ( imageExtent == rhs.imageExtent );
22601     }
22602 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22603     bool operator!=( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22604     {
22605       return !operator==( rhs );
22606     }
22607 #endif
22608 
22609 
22610 
22611   public:
22612     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2KHR;
22613     const void* pNext = {};
22614     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
22615     uint32_t bufferRowLength = {};
22616     uint32_t bufferImageHeight = {};
22617     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
22618     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
22619     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
22620 
22621   };
22622   static_assert( sizeof( BufferImageCopy2KHR ) == sizeof( VkBufferImageCopy2KHR ), "struct and wrapper have different size!" );
22623   static_assert( std::is_standard_layout<BufferImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
22624 
22625   template <>
22626   struct CppType<StructureType, StructureType::eBufferImageCopy2KHR>
22627   {
22628     using Type = BufferImageCopy2KHR;
22629   };
22630 
22631   struct BufferMemoryBarrier
22632   {
22633     static const bool allowDuplicate = false;
22634     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
22635 
22636 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22637     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
22638     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ )
22639     {}
22640 
22641     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22642 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22643     BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22644     {
22645       *this = rhs;
22646     }
22647 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22648 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22649     BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22650     {
22651       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>( &rhs );
22652       return *this;
22653     }
22654 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22655     BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22656     {
22657       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferMemoryBarrier ) );
22658       return *this;
22659     }
22660 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22661     BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22662     {
22663       pNext = pNext_;
22664       return *this;
22665     }
22666 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22667     BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
22668     {
22669       srcAccessMask = srcAccessMask_;
22670       return *this;
22671     }
22672 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22673     BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
22674     {
22675       dstAccessMask = dstAccessMask_;
22676       return *this;
22677     }
22678 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22679     BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
22680     {
22681       srcQueueFamilyIndex = srcQueueFamilyIndex_;
22682       return *this;
22683     }
22684 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22685     BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
22686     {
22687       dstQueueFamilyIndex = dstQueueFamilyIndex_;
22688       return *this;
22689     }
22690 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22691     BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22692     {
22693       buffer = buffer_;
22694       return *this;
22695     }
22696 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22697     BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
22698     {
22699       offset = offset_;
22700       return *this;
22701     }
22702 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22703     BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22704     {
22705       size = size_;
22706       return *this;
22707     }
22708 
22709 
operator VkBufferMemoryBarrier const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22710     operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
22711     {
22712       return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
22713     }
22714 
operator VkBufferMemoryBarrier&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22715     operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
22716     {
22717       return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
22718     }
22719 
22720 
22721 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22722     auto operator<=>( BufferMemoryBarrier const& ) const = default;
22723 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22724     bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
22725     {
22726       return ( sType == rhs.sType )
22727           && ( pNext == rhs.pNext )
22728           && ( srcAccessMask == rhs.srcAccessMask )
22729           && ( dstAccessMask == rhs.dstAccessMask )
22730           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
22731           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
22732           && ( buffer == rhs.buffer )
22733           && ( offset == rhs.offset )
22734           && ( size == rhs.size );
22735     }
22736 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22737     bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
22738     {
22739       return !operator==( rhs );
22740     }
22741 #endif
22742 
22743 
22744 
22745   public:
22746     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
22747     const void* pNext = {};
22748     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
22749     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
22750     uint32_t srcQueueFamilyIndex = {};
22751     uint32_t dstQueueFamilyIndex = {};
22752     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22753     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
22754     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22755 
22756   };
22757   static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" );
22758   static_assert( std::is_standard_layout<BufferMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
22759 
22760   template <>
22761   struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
22762   {
22763     using Type = BufferMemoryBarrier;
22764   };
22765 
22766   struct BufferMemoryRequirementsInfo2
22767   {
22768     static const bool allowDuplicate = false;
22769     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
22770 
22771 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222772     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
22773     : buffer( buffer_ )
22774     {}
22775 
22776     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22777 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222778     BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22779     {
22780       *this = rhs;
22781     }
22782 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22783 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222784     BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22785     {
22786       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>( &rhs );
22787       return *this;
22788     }
22789 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222790     BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22791     {
22792       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferMemoryRequirementsInfo2 ) );
22793       return *this;
22794     }
22795 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222796     BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22797     {
22798       pNext = pNext_;
22799       return *this;
22800     }
22801 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222802     BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22803     {
22804       buffer = buffer_;
22805       return *this;
22806     }
22807 
22808 
operator VkBufferMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222809     operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
22810     {
22811       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
22812     }
22813 
operator VkBufferMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222814     operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
22815     {
22816       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
22817     }
22818 
22819 
22820 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22821     auto operator<=>( BufferMemoryRequirementsInfo2 const& ) const = default;
22822 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222823     bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
22824     {
22825       return ( sType == rhs.sType )
22826           && ( pNext == rhs.pNext )
22827           && ( buffer == rhs.buffer );
22828     }
22829 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222830     bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
22831     {
22832       return !operator==( rhs );
22833     }
22834 #endif
22835 
22836 
22837 
22838   public:
22839     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
22840     const void* pNext = {};
22841     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22842 
22843   };
22844   static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
22845   static_assert( std::is_standard_layout<BufferMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
22846 
22847   template <>
22848   struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
22849   {
22850     using Type = BufferMemoryRequirementsInfo2;
22851   };
22852   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
22853 
22854   struct BufferOpaqueCaptureAddressCreateInfo
22855   {
22856     static const bool allowDuplicate = false;
22857     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
22858 
22859 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22860     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
22861     : opaqueCaptureAddress( opaqueCaptureAddress_ )
22862     {}
22863 
22864     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22865 
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22866     BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22867     {
22868       *this = rhs;
22869     }
22870 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22871 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22872     BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22873     {
22874       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>( &rhs );
22875       return *this;
22876     }
22877 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22878     BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22879     {
22880       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferOpaqueCaptureAddressCreateInfo ) );
22881       return *this;
22882     }
22883 
setPNextVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22884     BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22885     {
22886       pNext = pNext_;
22887       return *this;
22888     }
22889 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22890     BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
22891     {
22892       opaqueCaptureAddress = opaqueCaptureAddress_;
22893       return *this;
22894     }
22895 
22896 
operator VkBufferOpaqueCaptureAddressCreateInfo const&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22897     operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT
22898     {
22899       return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>( this );
22900     }
22901 
operator VkBufferOpaqueCaptureAddressCreateInfo&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22902     operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
22903     {
22904       return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>( this );
22905     }
22906 
22907 
22908 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22909     auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const& ) const = default;
22910 #else
operator ==VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22911     bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22912     {
22913       return ( sType == rhs.sType )
22914           && ( pNext == rhs.pNext )
22915           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
22916     }
22917 
operator !=VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo22918     bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22919     {
22920       return !operator==( rhs );
22921     }
22922 #endif
22923 
22924 
22925 
22926   public:
22927     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
22928     const void* pNext = {};
22929     uint64_t opaqueCaptureAddress = {};
22930 
22931   };
22932   static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" );
22933   static_assert( std::is_standard_layout<BufferOpaqueCaptureAddressCreateInfo>::value, "struct wrapper is not a standard layout!" );
22934 
22935   template <>
22936   struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
22937   {
22938     using Type = BufferOpaqueCaptureAddressCreateInfo;
22939   };
22940   using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
22941 
22942   struct BufferViewCreateInfo
22943   {
22944     static const bool allowDuplicate = false;
22945     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
22946 
22947 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22948     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
22949     : flags( flags_ ), buffer( buffer_ ), format( format_ ), offset( offset_ ), range( range_ )
22950     {}
22951 
22952     VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22953 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22954     BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22955     {
22956       *this = rhs;
22957     }
22958 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22959 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo22960     BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22961     {
22962       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>( &rhs );
22963       return *this;
22964     }
22965 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo22966     BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22967     {
22968       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferViewCreateInfo ) );
22969       return *this;
22970     }
22971 
setPNextVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22972     BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22973     {
22974       pNext = pNext_;
22975       return *this;
22976     }
22977 
setFlagsVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22978     BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
22979     {
22980       flags = flags_;
22981       return *this;
22982     }
22983 
setBufferVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22984     BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22985     {
22986       buffer = buffer_;
22987       return *this;
22988     }
22989 
setFormatVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22990     BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
22991     {
22992       format = format_;
22993       return *this;
22994     }
22995 
setOffsetVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22996     BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
22997     {
22998       offset = offset_;
22999       return *this;
23000     }
23001 
setRangeVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23002     BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
23003     {
23004       range = range_;
23005       return *this;
23006     }
23007 
23008 
operator VkBufferViewCreateInfo const&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23009     operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
23010     {
23011       return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
23012     }
23013 
operator VkBufferViewCreateInfo&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23014     operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
23015     {
23016       return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
23017     }
23018 
23019 
23020 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23021     auto operator<=>( BufferViewCreateInfo const& ) const = default;
23022 #else
operator ==VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23023     bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23024     {
23025       return ( sType == rhs.sType )
23026           && ( pNext == rhs.pNext )
23027           && ( flags == rhs.flags )
23028           && ( buffer == rhs.buffer )
23029           && ( format == rhs.format )
23030           && ( offset == rhs.offset )
23031           && ( range == rhs.range );
23032     }
23033 
operator !=VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23034     bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23035     {
23036       return !operator==( rhs );
23037     }
23038 #endif
23039 
23040 
23041 
23042   public:
23043     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
23044     const void* pNext = {};
23045     VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
23046     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
23047     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
23048     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
23049     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
23050 
23051   };
23052   static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
23053   static_assert( std::is_standard_layout<BufferViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
23054 
23055   template <>
23056   struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
23057   {
23058     using Type = BufferViewCreateInfo;
23059   };
23060 
23061   struct CalibratedTimestampInfoEXT
23062   {
23063     static const bool allowDuplicate = false;
23064     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
23065 
23066 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23067     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT(VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice) VULKAN_HPP_NOEXCEPT
23068     : timeDomain( timeDomain_ )
23069     {}
23070 
23071     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23072 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23073     CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23074     {
23075       *this = rhs;
23076     }
23077 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23078 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23079     CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23080     {
23081       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
23082       return *this;
23083     }
23084 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23085     CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23086     {
23087       memcpy( static_cast<void *>( this ), &rhs, sizeof( CalibratedTimestampInfoEXT ) );
23088       return *this;
23089     }
23090 
setPNextVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23091     CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23092     {
23093       pNext = pNext_;
23094       return *this;
23095     }
23096 
setTimeDomainVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23097     CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
23098     {
23099       timeDomain = timeDomain_;
23100       return *this;
23101     }
23102 
23103 
operator VkCalibratedTimestampInfoEXT const&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23104     operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT
23105     {
23106       return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
23107     }
23108 
operator VkCalibratedTimestampInfoEXT&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23109     operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
23110     {
23111       return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
23112     }
23113 
23114 
23115 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23116     auto operator<=>( CalibratedTimestampInfoEXT const& ) const = default;
23117 #else
operator ==VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23118     bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23119     {
23120       return ( sType == rhs.sType )
23121           && ( pNext == rhs.pNext )
23122           && ( timeDomain == rhs.timeDomain );
23123     }
23124 
operator !=VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23125     bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23126     {
23127       return !operator==( rhs );
23128     }
23129 #endif
23130 
23131 
23132 
23133   public:
23134     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
23135     const void* pNext = {};
23136     VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
23137 
23138   };
23139   static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" );
23140   static_assert( std::is_standard_layout<CalibratedTimestampInfoEXT>::value, "struct wrapper is not a standard layout!" );
23141 
23142   template <>
23143   struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
23144   {
23145     using Type = CalibratedTimestampInfoEXT;
23146   };
23147 
23148   struct CheckpointDataNV
23149   {
23150     static const bool allowDuplicate = false;
23151     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
23152 
23153 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV23154     VULKAN_HPP_CONSTEXPR CheckpointDataNV(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT
23155     : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ )
23156     {}
23157 
23158     VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23159 
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV23160     CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23161     {
23162       *this = rhs;
23163     }
23164 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23165 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV23166     CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23167     {
23168       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>( &rhs );
23169       return *this;
23170     }
23171 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV23172     CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23173     {
23174       memcpy( static_cast<void *>( this ), &rhs, sizeof( CheckpointDataNV ) );
23175       return *this;
23176     }
23177 
23178 
operator VkCheckpointDataNV const&VULKAN_HPP_NAMESPACE::CheckpointDataNV23179     operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT
23180     {
23181       return *reinterpret_cast<const VkCheckpointDataNV*>( this );
23182     }
23183 
operator VkCheckpointDataNV&VULKAN_HPP_NAMESPACE::CheckpointDataNV23184     operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
23185     {
23186       return *reinterpret_cast<VkCheckpointDataNV*>( this );
23187     }
23188 
23189 
23190 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23191     auto operator<=>( CheckpointDataNV const& ) const = default;
23192 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointDataNV23193     bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23194     {
23195       return ( sType == rhs.sType )
23196           && ( pNext == rhs.pNext )
23197           && ( stage == rhs.stage )
23198           && ( pCheckpointMarker == rhs.pCheckpointMarker );
23199     }
23200 
operator !=VULKAN_HPP_NAMESPACE::CheckpointDataNV23201     bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23202     {
23203       return !operator==( rhs );
23204     }
23205 #endif
23206 
23207 
23208 
23209   public:
23210     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
23211     void* pNext = {};
23212     VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
23213     void* pCheckpointMarker = {};
23214 
23215   };
23216   static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" );
23217   static_assert( std::is_standard_layout<CheckpointDataNV>::value, "struct wrapper is not a standard layout!" );
23218 
23219   template <>
23220   struct CppType<StructureType, StructureType::eCheckpointDataNV>
23221   {
23222     using Type = CheckpointDataNV;
23223   };
23224 
23225   union ClearColorValue
23226   {
ClearColorValue(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)23227     ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const& rhs ) VULKAN_HPP_NOEXCEPT
23228     {
23229       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
23230     }
23231 
ClearColorValue(const std::array<float,4> & float32_={} )23232     ClearColorValue( const std::array<float,4>& float32_ = {} )
23233       : float32( float32_ )
23234     {}
23235 
ClearColorValue(const std::array<int32_t,4> & int32_)23236     ClearColorValue( const std::array<int32_t,4>& int32_ )
23237       : int32( int32_ )
23238     {}
23239 
ClearColorValue(const std::array<uint32_t,4> & uint32_)23240     ClearColorValue( const std::array<uint32_t,4>& uint32_ )
23241       : uint32( uint32_ )
23242     {}
23243 
setFloat32(std::array<float,4> float32_)23244     ClearColorValue & setFloat32( std::array<float,4> float32_ ) VULKAN_HPP_NOEXCEPT
23245     {
23246       float32 = float32_;
23247       return *this;
23248     }
23249 
setInt32(std::array<int32_t,4> int32_)23250     ClearColorValue & setInt32( std::array<int32_t,4> int32_ ) VULKAN_HPP_NOEXCEPT
23251     {
23252       int32 = int32_;
23253       return *this;
23254     }
23255 
setUint32(std::array<uint32_t,4> uint32_)23256     ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ ) VULKAN_HPP_NOEXCEPT
23257     {
23258       uint32 = uint32_;
23259       return *this;
23260     }
23261 
operator =(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)23262     VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT
23263     {
23264       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
23265       return *this;
23266     }
23267 
operator VkClearColorValue const&() const23268     operator VkClearColorValue const&() const
23269     {
23270       return *reinterpret_cast<const VkClearColorValue*>(this);
23271     }
23272 
operator VkClearColorValue&()23273     operator VkClearColorValue &()
23274     {
23275       return *reinterpret_cast<VkClearColorValue*>(this);
23276     }
23277 
23278     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
23279     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
23280     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
23281   };
23282 
23283   struct ClearDepthStencilValue
23284   {
23285 
23286 
23287 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23288     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue(float depth_ = {}, uint32_t stencil_ = {}) VULKAN_HPP_NOEXCEPT
23289     : depth( depth_ ), stencil( stencil_ )
23290     {}
23291 
23292     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23293 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23294     ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23295     {
23296       *this = rhs;
23297     }
23298 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23299 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23300     ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23301     {
23302       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>( &rhs );
23303       return *this;
23304     }
23305 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23306     ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23307     {
23308       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearDepthStencilValue ) );
23309       return *this;
23310     }
23311 
setDepthVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23312     ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
23313     {
23314       depth = depth_;
23315       return *this;
23316     }
23317 
setStencilVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23318     ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
23319     {
23320       stencil = stencil_;
23321       return *this;
23322     }
23323 
23324 
operator VkClearDepthStencilValue const&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23325     operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT
23326     {
23327       return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
23328     }
23329 
operator VkClearDepthStencilValue&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23330     operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
23331     {
23332       return *reinterpret_cast<VkClearDepthStencilValue*>( this );
23333     }
23334 
23335 
23336 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23337     auto operator<=>( ClearDepthStencilValue const& ) const = default;
23338 #else
operator ==VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23339     bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
23340     {
23341       return ( depth == rhs.depth )
23342           && ( stencil == rhs.stencil );
23343     }
23344 
operator !=VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23345     bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
23346     {
23347       return !operator==( rhs );
23348     }
23349 #endif
23350 
23351 
23352 
23353   public:
23354     float depth = {};
23355     uint32_t stencil = {};
23356 
23357   };
23358   static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" );
23359   static_assert( std::is_standard_layout<ClearDepthStencilValue>::value, "struct wrapper is not a standard layout!" );
23360 
23361   union ClearValue
23362   {
ClearValue(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)23363     ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const& rhs ) VULKAN_HPP_NOEXCEPT
23364     {
23365       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
23366     }
23367 
ClearValue(VULKAN_HPP_NAMESPACE::ClearColorValue color_={} )23368     ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} )
23369       : color( color_ )
23370     {}
23371 
ClearValue(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_)23372     ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ )
23373       : depthStencil( depthStencil_ )
23374     {}
23375 
setColor(VULKAN_HPP_NAMESPACE::ClearColorValue const & color_)23376     ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
23377     {
23378       color = color_;
23379       return *this;
23380     }
23381 
setDepthStencil(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_)23382     ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
23383     {
23384       depthStencil = depthStencil_;
23385       return *this;
23386     }
23387 
operator =(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)23388     VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT
23389     {
23390       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
23391       return *this;
23392     }
23393 
operator VkClearValue const&() const23394     operator VkClearValue const&() const
23395     {
23396       return *reinterpret_cast<const VkClearValue*>(this);
23397     }
23398 
operator VkClearValue&()23399     operator VkClearValue &()
23400     {
23401       return *reinterpret_cast<VkClearValue*>(this);
23402     }
23403 
23404 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
23405     VULKAN_HPP_NAMESPACE::ClearColorValue color;
23406     VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
23407 #else
23408     VkClearColorValue color;
23409     VkClearDepthStencilValue depthStencil;
23410 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
23411   };
23412 
23413   struct ClearAttachment
23414   {
23415 
23416 
23417 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23418     ClearAttachment(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t colorAttachment_ = {}, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}) VULKAN_HPP_NOEXCEPT
23419     : aspectMask( aspectMask_ ), colorAttachment( colorAttachment_ ), clearValue( clearValue_ )
23420     {}
23421 
23422     ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23423 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23424     ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23425     {
23426       *this = rhs;
23427     }
23428 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23429 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment23430     ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23431     {
23432       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>( &rhs );
23433       return *this;
23434     }
23435 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment23436     ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23437     {
23438       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearAttachment ) );
23439       return *this;
23440     }
23441 
setAspectMaskVULKAN_HPP_NAMESPACE::ClearAttachment23442     ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
23443     {
23444       aspectMask = aspectMask_;
23445       return *this;
23446     }
23447 
setColorAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23448     ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
23449     {
23450       colorAttachment = colorAttachment_;
23451       return *this;
23452     }
23453 
setClearValueVULKAN_HPP_NAMESPACE::ClearAttachment23454     ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
23455     {
23456       clearValue = clearValue_;
23457       return *this;
23458     }
23459 
23460 
operator VkClearAttachment const&VULKAN_HPP_NAMESPACE::ClearAttachment23461     operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT
23462     {
23463       return *reinterpret_cast<const VkClearAttachment*>( this );
23464     }
23465 
operator VkClearAttachment&VULKAN_HPP_NAMESPACE::ClearAttachment23466     operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
23467     {
23468       return *reinterpret_cast<VkClearAttachment*>( this );
23469     }
23470 
23471 
23472 
23473 
23474   public:
23475     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
23476     uint32_t colorAttachment = {};
23477     VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
23478 
23479   };
23480   static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" );
23481   static_assert( std::is_standard_layout<ClearAttachment>::value, "struct wrapper is not a standard layout!" );
23482 
23483   struct ClearRect
23484   {
23485 
23486 
23487 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23488     VULKAN_HPP_CONSTEXPR ClearRect(VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
23489     : rect( rect_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
23490     {}
23491 
23492     VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23493 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23494     ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23495     {
23496       *this = rhs;
23497     }
23498 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23499 
operator =VULKAN_HPP_NAMESPACE::ClearRect23500     ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23501     {
23502       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>( &rhs );
23503       return *this;
23504     }
23505 
operator =VULKAN_HPP_NAMESPACE::ClearRect23506     ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23507     {
23508       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearRect ) );
23509       return *this;
23510     }
23511 
setRectVULKAN_HPP_NAMESPACE::ClearRect23512     ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
23513     {
23514       rect = rect_;
23515       return *this;
23516     }
23517 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ClearRect23518     ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
23519     {
23520       baseArrayLayer = baseArrayLayer_;
23521       return *this;
23522     }
23523 
setLayerCountVULKAN_HPP_NAMESPACE::ClearRect23524     ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
23525     {
23526       layerCount = layerCount_;
23527       return *this;
23528     }
23529 
23530 
operator VkClearRect const&VULKAN_HPP_NAMESPACE::ClearRect23531     operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT
23532     {
23533       return *reinterpret_cast<const VkClearRect*>( this );
23534     }
23535 
operator VkClearRect&VULKAN_HPP_NAMESPACE::ClearRect23536     operator VkClearRect &() VULKAN_HPP_NOEXCEPT
23537     {
23538       return *reinterpret_cast<VkClearRect*>( this );
23539     }
23540 
23541 
23542 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23543     auto operator<=>( ClearRect const& ) const = default;
23544 #else
operator ==VULKAN_HPP_NAMESPACE::ClearRect23545     bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
23546     {
23547       return ( rect == rhs.rect )
23548           && ( baseArrayLayer == rhs.baseArrayLayer )
23549           && ( layerCount == rhs.layerCount );
23550     }
23551 
operator !=VULKAN_HPP_NAMESPACE::ClearRect23552     bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
23553     {
23554       return !operator==( rhs );
23555     }
23556 #endif
23557 
23558 
23559 
23560   public:
23561     VULKAN_HPP_NAMESPACE::Rect2D rect = {};
23562     uint32_t baseArrayLayer = {};
23563     uint32_t layerCount = {};
23564 
23565   };
23566   static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" );
23567   static_assert( std::is_standard_layout<ClearRect>::value, "struct wrapper is not a standard layout!" );
23568 
23569   struct CoarseSampleLocationNV
23570   {
23571 
23572 
23573 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23574     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV(uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {}) VULKAN_HPP_NOEXCEPT
23575     : pixelX( pixelX_ ), pixelY( pixelY_ ), sample( sample_ )
23576     {}
23577 
23578     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23579 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23580     CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23581     {
23582       *this = rhs;
23583     }
23584 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23585 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23586     CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23587     {
23588       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>( &rhs );
23589       return *this;
23590     }
23591 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23592     CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23593     {
23594       memcpy( static_cast<void *>( this ), &rhs, sizeof( CoarseSampleLocationNV ) );
23595       return *this;
23596     }
23597 
setPixelXVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23598     CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
23599     {
23600       pixelX = pixelX_;
23601       return *this;
23602     }
23603 
setPixelYVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23604     CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
23605     {
23606       pixelY = pixelY_;
23607       return *this;
23608     }
23609 
setSampleVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23610     CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
23611     {
23612       sample = sample_;
23613       return *this;
23614     }
23615 
23616 
operator VkCoarseSampleLocationNV const&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23617     operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT
23618     {
23619       return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
23620     }
23621 
operator VkCoarseSampleLocationNV&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23622     operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
23623     {
23624       return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
23625     }
23626 
23627 
23628 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23629     auto operator<=>( CoarseSampleLocationNV const& ) const = default;
23630 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23631     bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23632     {
23633       return ( pixelX == rhs.pixelX )
23634           && ( pixelY == rhs.pixelY )
23635           && ( sample == rhs.sample );
23636     }
23637 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23638     bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23639     {
23640       return !operator==( rhs );
23641     }
23642 #endif
23643 
23644 
23645 
23646   public:
23647     uint32_t pixelX = {};
23648     uint32_t pixelY = {};
23649     uint32_t sample = {};
23650 
23651   };
23652   static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" );
23653   static_assert( std::is_standard_layout<CoarseSampleLocationNV>::value, "struct wrapper is not a standard layout!" );
23654 
23655   struct CoarseSampleOrderCustomNV
23656   {
23657 
23658 
23659 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23660     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
23661     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( sampleLocationCount_ ), pSampleLocations( pSampleLocations_ )
23662     {}
23663 
23664     VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23665 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23666     CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23667     {
23668       *this = rhs;
23669     }
23670 
23671 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23672     CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, uint32_t sampleCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ )
23673     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
23674     {}
23675 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23676 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23677 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23678     CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23679     {
23680       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>( &rhs );
23681       return *this;
23682     }
23683 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23684     CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23685     {
23686       memcpy( static_cast<void *>( this ), &rhs, sizeof( CoarseSampleOrderCustomNV ) );
23687       return *this;
23688     }
23689 
setShadingRateVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23690     CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
23691     {
23692       shadingRate = shadingRate_;
23693       return *this;
23694     }
23695 
setSampleCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23696     CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
23697     {
23698       sampleCount = sampleCount_;
23699       return *this;
23700     }
23701 
setSampleLocationCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23702     CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
23703     {
23704       sampleLocationCount = sampleLocationCount_;
23705       return *this;
23706     }
23707 
setPSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23708     CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
23709     {
23710       pSampleLocations = pSampleLocations_;
23711       return *this;
23712     }
23713 
23714 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23715     CoarseSampleOrderCustomNV & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
23716     {
23717       sampleLocationCount = static_cast<uint32_t>( sampleLocations_.size() );
23718       pSampleLocations = sampleLocations_.data();
23719       return *this;
23720     }
23721 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23722 
23723 
operator VkCoarseSampleOrderCustomNV const&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23724     operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT
23725     {
23726       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
23727     }
23728 
operator VkCoarseSampleOrderCustomNV&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23729     operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
23730     {
23731       return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
23732     }
23733 
23734 
23735 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23736     auto operator<=>( CoarseSampleOrderCustomNV const& ) const = default;
23737 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23738     bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23739     {
23740       return ( shadingRate == rhs.shadingRate )
23741           && ( sampleCount == rhs.sampleCount )
23742           && ( sampleLocationCount == rhs.sampleLocationCount )
23743           && ( pSampleLocations == rhs.pSampleLocations );
23744     }
23745 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23746     bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23747     {
23748       return !operator==( rhs );
23749     }
23750 #endif
23751 
23752 
23753 
23754   public:
23755     VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
23756     uint32_t sampleCount = {};
23757     uint32_t sampleLocationCount = {};
23758     const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {};
23759 
23760   };
23761   static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" );
23762   static_assert( std::is_standard_layout<CoarseSampleOrderCustomNV>::value, "struct wrapper is not a standard layout!" );
23763 
23764   class CommandPool
23765   {
23766   public:
23767     using CType = VkCommandPool;
23768 
23769     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool;
23770     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
23771 
23772   public:
CommandPool()23773     VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT
23774       : m_commandPool(VK_NULL_HANDLE)
23775     {}
23776 
CommandPool(std::nullptr_t)23777     VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23778       : m_commandPool(VK_NULL_HANDLE)
23779     {}
23780 
CommandPool(VkCommandPool commandPool)23781     VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT
23782       : m_commandPool( commandPool )
23783     {}
23784 
23785 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandPool commandPool)23786     CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT
23787     {
23788       m_commandPool = commandPool;
23789       return *this;
23790     }
23791 #endif
23792 
operator =(std::nullptr_t)23793     CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23794     {
23795       m_commandPool = VK_NULL_HANDLE;
23796       return *this;
23797     }
23798 
23799 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23800     auto operator<=>( CommandPool const& ) const = default;
23801 #else
operator ==(CommandPool const & rhs) const23802     bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23803     {
23804       return m_commandPool == rhs.m_commandPool;
23805     }
23806 
operator !=(CommandPool const & rhs) const23807     bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23808     {
23809       return m_commandPool != rhs.m_commandPool;
23810     }
23811 
operator <(CommandPool const & rhs) const23812     bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23813     {
23814       return m_commandPool < rhs.m_commandPool;
23815     }
23816 #endif
23817 
operator VkCommandPool() const23818     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT
23819     {
23820       return m_commandPool;
23821     }
23822 
operator bool() const23823     explicit operator bool() const VULKAN_HPP_NOEXCEPT
23824     {
23825       return m_commandPool != VK_NULL_HANDLE;
23826     }
23827 
operator !() const23828     bool operator!() const VULKAN_HPP_NOEXCEPT
23829     {
23830       return m_commandPool == VK_NULL_HANDLE;
23831     }
23832 
23833   private:
23834     VkCommandPool m_commandPool;
23835   };
23836   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
23837 
23838   template <>
23839   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandPool>
23840   {
23841     using type = VULKAN_HPP_NAMESPACE::CommandPool;
23842   };
23843 
23844   template <>
23845   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool>
23846   {
23847     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
23848   };
23849 
23850 
23851   template <>
23852   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool>
23853   {
23854     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
23855   };
23856 
23857 
23858   template <>
23859   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandPool>
23860   {
23861     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
23862   };
23863 
23864   struct CommandBufferAllocateInfo
23865   {
23866     static const bool allowDuplicate = false;
23867     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
23868 
23869 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23870     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
23871     : commandPool( commandPool_ ), level( level_ ), commandBufferCount( commandBufferCount_ )
23872     {}
23873 
23874     VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23875 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23876     CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23877     {
23878       *this = rhs;
23879     }
23880 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23881 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23882     CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23883     {
23884       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>( &rhs );
23885       return *this;
23886     }
23887 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23888     CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23889     {
23890       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferAllocateInfo ) );
23891       return *this;
23892     }
23893 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23894     CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23895     {
23896       pNext = pNext_;
23897       return *this;
23898     }
23899 
setCommandPoolVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23900     CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
23901     {
23902       commandPool = commandPool_;
23903       return *this;
23904     }
23905 
setLevelVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23906     CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
23907     {
23908       level = level_;
23909       return *this;
23910     }
23911 
setCommandBufferCountVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23912     CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
23913     {
23914       commandBufferCount = commandBufferCount_;
23915       return *this;
23916     }
23917 
23918 
operator VkCommandBufferAllocateInfo const&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23919     operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
23920     {
23921       return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
23922     }
23923 
operator VkCommandBufferAllocateInfo&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23924     operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
23925     {
23926       return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
23927     }
23928 
23929 
23930 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23931     auto operator<=>( CommandBufferAllocateInfo const& ) const = default;
23932 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23933     bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23934     {
23935       return ( sType == rhs.sType )
23936           && ( pNext == rhs.pNext )
23937           && ( commandPool == rhs.commandPool )
23938           && ( level == rhs.level )
23939           && ( commandBufferCount == rhs.commandBufferCount );
23940     }
23941 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23942     bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23943     {
23944       return !operator==( rhs );
23945     }
23946 #endif
23947 
23948 
23949 
23950   public:
23951     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
23952     const void* pNext = {};
23953     VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
23954     VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
23955     uint32_t commandBufferCount = {};
23956 
23957   };
23958   static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" );
23959   static_assert( std::is_standard_layout<CommandBufferAllocateInfo>::value, "struct wrapper is not a standard layout!" );
23960 
23961   template <>
23962   struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
23963   {
23964     using Type = CommandBufferAllocateInfo;
23965   };
23966 
23967   class RenderPass
23968   {
23969   public:
23970     using CType = VkRenderPass;
23971 
23972     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass;
23973     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
23974 
23975   public:
RenderPass()23976     VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT
23977       : m_renderPass(VK_NULL_HANDLE)
23978     {}
23979 
RenderPass(std::nullptr_t)23980     VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23981       : m_renderPass(VK_NULL_HANDLE)
23982     {}
23983 
RenderPass(VkRenderPass renderPass)23984     VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT
23985       : m_renderPass( renderPass )
23986     {}
23987 
23988 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkRenderPass renderPass)23989     RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT
23990     {
23991       m_renderPass = renderPass;
23992       return *this;
23993     }
23994 #endif
23995 
operator =(std::nullptr_t)23996     RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23997     {
23998       m_renderPass = VK_NULL_HANDLE;
23999       return *this;
24000     }
24001 
24002 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24003     auto operator<=>( RenderPass const& ) const = default;
24004 #else
operator ==(RenderPass const & rhs) const24005     bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24006     {
24007       return m_renderPass == rhs.m_renderPass;
24008     }
24009 
operator !=(RenderPass const & rhs) const24010     bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24011     {
24012       return m_renderPass != rhs.m_renderPass;
24013     }
24014 
operator <(RenderPass const & rhs) const24015     bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24016     {
24017       return m_renderPass < rhs.m_renderPass;
24018     }
24019 #endif
24020 
operator VkRenderPass() const24021     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT
24022     {
24023       return m_renderPass;
24024     }
24025 
operator bool() const24026     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24027     {
24028       return m_renderPass != VK_NULL_HANDLE;
24029     }
24030 
operator !() const24031     bool operator!() const VULKAN_HPP_NOEXCEPT
24032     {
24033       return m_renderPass == VK_NULL_HANDLE;
24034     }
24035 
24036   private:
24037     VkRenderPass m_renderPass;
24038   };
24039   static_assert( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
24040 
24041   template <>
24042   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eRenderPass>
24043   {
24044     using type = VULKAN_HPP_NAMESPACE::RenderPass;
24045   };
24046 
24047   template <>
24048   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass>
24049   {
24050     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
24051   };
24052 
24053 
24054   template <>
24055   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass>
24056   {
24057     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
24058   };
24059 
24060 
24061   template <>
24062   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::RenderPass>
24063   {
24064     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24065   };
24066 
24067   class Framebuffer
24068   {
24069   public:
24070     using CType = VkFramebuffer;
24071 
24072     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer;
24073     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
24074 
24075   public:
Framebuffer()24076     VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT
24077       : m_framebuffer(VK_NULL_HANDLE)
24078     {}
24079 
Framebuffer(std::nullptr_t)24080     VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24081       : m_framebuffer(VK_NULL_HANDLE)
24082     {}
24083 
Framebuffer(VkFramebuffer framebuffer)24084     VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT
24085       : m_framebuffer( framebuffer )
24086     {}
24087 
24088 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFramebuffer framebuffer)24089     Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT
24090     {
24091       m_framebuffer = framebuffer;
24092       return *this;
24093     }
24094 #endif
24095 
operator =(std::nullptr_t)24096     Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24097     {
24098       m_framebuffer = VK_NULL_HANDLE;
24099       return *this;
24100     }
24101 
24102 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24103     auto operator<=>( Framebuffer const& ) const = default;
24104 #else
operator ==(Framebuffer const & rhs) const24105     bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24106     {
24107       return m_framebuffer == rhs.m_framebuffer;
24108     }
24109 
operator !=(Framebuffer const & rhs) const24110     bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24111     {
24112       return m_framebuffer != rhs.m_framebuffer;
24113     }
24114 
operator <(Framebuffer const & rhs) const24115     bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24116     {
24117       return m_framebuffer < rhs.m_framebuffer;
24118     }
24119 #endif
24120 
operator VkFramebuffer() const24121     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT
24122     {
24123       return m_framebuffer;
24124     }
24125 
operator bool() const24126     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24127     {
24128       return m_framebuffer != VK_NULL_HANDLE;
24129     }
24130 
operator !() const24131     bool operator!() const VULKAN_HPP_NOEXCEPT
24132     {
24133       return m_framebuffer == VK_NULL_HANDLE;
24134     }
24135 
24136   private:
24137     VkFramebuffer m_framebuffer;
24138   };
24139   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
24140 
24141   template <>
24142   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFramebuffer>
24143   {
24144     using type = VULKAN_HPP_NAMESPACE::Framebuffer;
24145   };
24146 
24147   template <>
24148   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer>
24149   {
24150     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
24151   };
24152 
24153 
24154   template <>
24155   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer>
24156   {
24157     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
24158   };
24159 
24160 
24161   template <>
24162   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Framebuffer>
24163   {
24164     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24165   };
24166 
24167   struct CommandBufferInheritanceInfo
24168   {
24169     static const bool allowDuplicate = false;
24170     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
24171 
24172 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24173     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
24174     : renderPass( renderPass_ ), subpass( subpass_ ), framebuffer( framebuffer_ ), occlusionQueryEnable( occlusionQueryEnable_ ), queryFlags( queryFlags_ ), pipelineStatistics( pipelineStatistics_ )
24175     {}
24176 
24177     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24178 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24179     CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24180     {
24181       *this = rhs;
24182     }
24183 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24184 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24185     CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24186     {
24187       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>( &rhs );
24188       return *this;
24189     }
24190 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24191     CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24192     {
24193       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceInfo ) );
24194       return *this;
24195     }
24196 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24197     CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24198     {
24199       pNext = pNext_;
24200       return *this;
24201     }
24202 
setRenderPassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24203     CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
24204     {
24205       renderPass = renderPass_;
24206       return *this;
24207     }
24208 
setSubpassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24209     CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
24210     {
24211       subpass = subpass_;
24212       return *this;
24213     }
24214 
setFramebufferVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24215     CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
24216     {
24217       framebuffer = framebuffer_;
24218       return *this;
24219     }
24220 
setOcclusionQueryEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24221     CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
24222     {
24223       occlusionQueryEnable = occlusionQueryEnable_;
24224       return *this;
24225     }
24226 
setQueryFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24227     CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
24228     {
24229       queryFlags = queryFlags_;
24230       return *this;
24231     }
24232 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24233     CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
24234     {
24235       pipelineStatistics = pipelineStatistics_;
24236       return *this;
24237     }
24238 
24239 
operator VkCommandBufferInheritanceInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24240     operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT
24241     {
24242       return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
24243     }
24244 
operator VkCommandBufferInheritanceInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24245     operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
24246     {
24247       return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
24248     }
24249 
24250 
24251 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24252     auto operator<=>( CommandBufferInheritanceInfo const& ) const = default;
24253 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24254     bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24255     {
24256       return ( sType == rhs.sType )
24257           && ( pNext == rhs.pNext )
24258           && ( renderPass == rhs.renderPass )
24259           && ( subpass == rhs.subpass )
24260           && ( framebuffer == rhs.framebuffer )
24261           && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
24262           && ( queryFlags == rhs.queryFlags )
24263           && ( pipelineStatistics == rhs.pipelineStatistics );
24264     }
24265 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24266     bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24267     {
24268       return !operator==( rhs );
24269     }
24270 #endif
24271 
24272 
24273 
24274   public:
24275     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
24276     const void* pNext = {};
24277     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
24278     uint32_t subpass = {};
24279     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
24280     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
24281     VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
24282     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
24283 
24284   };
24285   static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" );
24286   static_assert( std::is_standard_layout<CommandBufferInheritanceInfo>::value, "struct wrapper is not a standard layout!" );
24287 
24288   template <>
24289   struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
24290   {
24291     using Type = CommandBufferInheritanceInfo;
24292   };
24293 
24294   struct CommandBufferBeginInfo
24295   {
24296     static const bool allowDuplicate = false;
24297     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
24298 
24299 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24300     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo(VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {}) VULKAN_HPP_NOEXCEPT
24301     : flags( flags_ ), pInheritanceInfo( pInheritanceInfo_ )
24302     {}
24303 
24304     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24305 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24306     CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24307     {
24308       *this = rhs;
24309     }
24310 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24311 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24312     CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24313     {
24314       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>( &rhs );
24315       return *this;
24316     }
24317 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24318     CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24319     {
24320       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferBeginInfo ) );
24321       return *this;
24322     }
24323 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24324     CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24325     {
24326       pNext = pNext_;
24327       return *this;
24328     }
24329 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24330     CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
24331     {
24332       flags = flags_;
24333       return *this;
24334     }
24335 
setPInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24336     CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
24337     {
24338       pInheritanceInfo = pInheritanceInfo_;
24339       return *this;
24340     }
24341 
24342 
operator VkCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24343     operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
24344     {
24345       return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
24346     }
24347 
operator VkCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24348     operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
24349     {
24350       return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
24351     }
24352 
24353 
24354 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24355     auto operator<=>( CommandBufferBeginInfo const& ) const = default;
24356 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24357     bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24358     {
24359       return ( sType == rhs.sType )
24360           && ( pNext == rhs.pNext )
24361           && ( flags == rhs.flags )
24362           && ( pInheritanceInfo == rhs.pInheritanceInfo );
24363     }
24364 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24365     bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24366     {
24367       return !operator==( rhs );
24368     }
24369 #endif
24370 
24371 
24372 
24373   public:
24374     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
24375     const void* pNext = {};
24376     VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
24377     const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {};
24378 
24379   };
24380   static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" );
24381   static_assert( std::is_standard_layout<CommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
24382 
24383   template <>
24384   struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
24385   {
24386     using Type = CommandBufferBeginInfo;
24387   };
24388 
24389   struct CommandBufferInheritanceConditionalRenderingInfoEXT
24390   {
24391     static const bool allowDuplicate = false;
24392     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
24393 
24394 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24395     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {}) VULKAN_HPP_NOEXCEPT
24396     : conditionalRenderingEnable( conditionalRenderingEnable_ )
24397     {}
24398 
24399     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24400 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24401     CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24402     {
24403       *this = rhs;
24404     }
24405 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24406 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24407     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24408     {
24409       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs );
24410       return *this;
24411     }
24412 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24413     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24414     {
24415       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) );
24416       return *this;
24417     }
24418 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24419     CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24420     {
24421       pNext = pNext_;
24422       return *this;
24423     }
24424 
setConditionalRenderingEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24425     CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
24426     {
24427       conditionalRenderingEnable = conditionalRenderingEnable_;
24428       return *this;
24429     }
24430 
24431 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24432     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT
24433     {
24434       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24435     }
24436 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24437     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
24438     {
24439       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24440     }
24441 
24442 
24443 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24444     auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const& ) const = default;
24445 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24446     bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24447     {
24448       return ( sType == rhs.sType )
24449           && ( pNext == rhs.pNext )
24450           && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
24451     }
24452 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24453     bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24454     {
24455       return !operator==( rhs );
24456     }
24457 #endif
24458 
24459 
24460 
24461   public:
24462     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
24463     const void* pNext = {};
24464     VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
24465 
24466   };
24467   static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" );
24468   static_assert( std::is_standard_layout<CommandBufferInheritanceConditionalRenderingInfoEXT>::value, "struct wrapper is not a standard layout!" );
24469 
24470   template <>
24471   struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
24472   {
24473     using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
24474   };
24475 
24476   struct CommandBufferInheritanceRenderPassTransformInfoQCOM
24477   {
24478     static const bool allowDuplicate = false;
24479     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
24480 
24481 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24482     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}) VULKAN_HPP_NOEXCEPT
24483     : transform( transform_ ), renderArea( renderArea_ )
24484     {}
24485 
24486     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24487 
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24488     CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24489     {
24490       *this = rhs;
24491     }
24492 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24493 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24494     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24495     {
24496       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs );
24497       return *this;
24498     }
24499 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24500     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24501     {
24502       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) );
24503       return *this;
24504     }
24505 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24506     CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
24507     {
24508       pNext = pNext_;
24509       return *this;
24510     }
24511 
setTransformVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24512     CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
24513     {
24514       transform = transform_;
24515       return *this;
24516     }
24517 
setRenderAreaVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24518     CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
24519     {
24520       renderArea = renderArea_;
24521       return *this;
24522     }
24523 
24524 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24525     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
24526     {
24527       return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
24528     }
24529 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24530     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
24531     {
24532       return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
24533     }
24534 
24535 
24536 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24537     auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const& ) const = default;
24538 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24539     bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
24540     {
24541       return ( sType == rhs.sType )
24542           && ( pNext == rhs.pNext )
24543           && ( transform == rhs.transform )
24544           && ( renderArea == rhs.renderArea );
24545     }
24546 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24547     bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
24548     {
24549       return !operator==( rhs );
24550     }
24551 #endif
24552 
24553 
24554 
24555   public:
24556     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
24557     void* pNext = {};
24558     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
24559     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
24560 
24561   };
24562   static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), "struct and wrapper have different size!" );
24563   static_assert( std::is_standard_layout<CommandBufferInheritanceRenderPassTransformInfoQCOM>::value, "struct wrapper is not a standard layout!" );
24564 
24565   template <>
24566   struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
24567   {
24568     using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
24569   };
24570 
24571   struct CommandPoolCreateInfo
24572   {
24573     static const bool allowDuplicate = false;
24574     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
24575 
24576 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24577     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo(VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}) VULKAN_HPP_NOEXCEPT
24578     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ )
24579     {}
24580 
24581     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24582 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24583     CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24584     {
24585       *this = rhs;
24586     }
24587 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24588 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24589     CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24590     {
24591       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>( &rhs );
24592       return *this;
24593     }
24594 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24595     CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24596     {
24597       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandPoolCreateInfo ) );
24598       return *this;
24599     }
24600 
setPNextVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24601     CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24602     {
24603       pNext = pNext_;
24604       return *this;
24605     }
24606 
setFlagsVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24607     CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
24608     {
24609       flags = flags_;
24610       return *this;
24611     }
24612 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24613     CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
24614     {
24615       queueFamilyIndex = queueFamilyIndex_;
24616       return *this;
24617     }
24618 
24619 
operator VkCommandPoolCreateInfo const&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24620     operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
24621     {
24622       return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
24623     }
24624 
operator VkCommandPoolCreateInfo&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24625     operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
24626     {
24627       return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
24628     }
24629 
24630 
24631 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24632     auto operator<=>( CommandPoolCreateInfo const& ) const = default;
24633 #else
operator ==VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24634     bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24635     {
24636       return ( sType == rhs.sType )
24637           && ( pNext == rhs.pNext )
24638           && ( flags == rhs.flags )
24639           && ( queueFamilyIndex == rhs.queueFamilyIndex );
24640     }
24641 
operator !=VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24642     bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24643     {
24644       return !operator==( rhs );
24645     }
24646 #endif
24647 
24648 
24649 
24650   public:
24651     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
24652     const void* pNext = {};
24653     VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
24654     uint32_t queueFamilyIndex = {};
24655 
24656   };
24657   static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" );
24658   static_assert( std::is_standard_layout<CommandPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
24659 
24660   template <>
24661   struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
24662   {
24663     using Type = CommandPoolCreateInfo;
24664   };
24665 
24666   class ShaderModule
24667   {
24668   public:
24669     using CType = VkShaderModule;
24670 
24671     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule;
24672     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
24673 
24674   public:
ShaderModule()24675     VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT
24676       : m_shaderModule(VK_NULL_HANDLE)
24677     {}
24678 
ShaderModule(std::nullptr_t)24679     VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24680       : m_shaderModule(VK_NULL_HANDLE)
24681     {}
24682 
ShaderModule(VkShaderModule shaderModule)24683     VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT
24684       : m_shaderModule( shaderModule )
24685     {}
24686 
24687 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkShaderModule shaderModule)24688     ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT
24689     {
24690       m_shaderModule = shaderModule;
24691       return *this;
24692     }
24693 #endif
24694 
operator =(std::nullptr_t)24695     ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24696     {
24697       m_shaderModule = VK_NULL_HANDLE;
24698       return *this;
24699     }
24700 
24701 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24702     auto operator<=>( ShaderModule const& ) const = default;
24703 #else
operator ==(ShaderModule const & rhs) const24704     bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24705     {
24706       return m_shaderModule == rhs.m_shaderModule;
24707     }
24708 
operator !=(ShaderModule const & rhs) const24709     bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24710     {
24711       return m_shaderModule != rhs.m_shaderModule;
24712     }
24713 
operator <(ShaderModule const & rhs) const24714     bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24715     {
24716       return m_shaderModule < rhs.m_shaderModule;
24717     }
24718 #endif
24719 
operator VkShaderModule() const24720     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT
24721     {
24722       return m_shaderModule;
24723     }
24724 
operator bool() const24725     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24726     {
24727       return m_shaderModule != VK_NULL_HANDLE;
24728     }
24729 
operator !() const24730     bool operator!() const VULKAN_HPP_NOEXCEPT
24731     {
24732       return m_shaderModule == VK_NULL_HANDLE;
24733     }
24734 
24735   private:
24736     VkShaderModule m_shaderModule;
24737   };
24738   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
24739 
24740   template <>
24741   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eShaderModule>
24742   {
24743     using type = VULKAN_HPP_NAMESPACE::ShaderModule;
24744   };
24745 
24746   template <>
24747   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule>
24748   {
24749     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
24750   };
24751 
24752 
24753   template <>
24754   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule>
24755   {
24756     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
24757   };
24758 
24759 
24760   template <>
24761   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ShaderModule>
24762   {
24763     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24764   };
24765 
24766   struct SpecializationMapEntry
24767   {
24768 
24769 
24770 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24771     VULKAN_HPP_CONSTEXPR SpecializationMapEntry(uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {}) VULKAN_HPP_NOEXCEPT
24772     : constantID( constantID_ ), offset( offset_ ), size( size_ )
24773     {}
24774 
24775     VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24776 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24777     SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24778     {
24779       *this = rhs;
24780     }
24781 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24782 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry24783     SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24784     {
24785       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>( &rhs );
24786       return *this;
24787     }
24788 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry24789     SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24790     {
24791       memcpy( static_cast<void *>( this ), &rhs, sizeof( SpecializationMapEntry ) );
24792       return *this;
24793     }
24794 
setConstantIDVULKAN_HPP_NAMESPACE::SpecializationMapEntry24795     SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
24796     {
24797       constantID = constantID_;
24798       return *this;
24799     }
24800 
setOffsetVULKAN_HPP_NAMESPACE::SpecializationMapEntry24801     SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
24802     {
24803       offset = offset_;
24804       return *this;
24805     }
24806 
setSizeVULKAN_HPP_NAMESPACE::SpecializationMapEntry24807     SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
24808     {
24809       size = size_;
24810       return *this;
24811     }
24812 
24813 
operator VkSpecializationMapEntry const&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24814     operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT
24815     {
24816       return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
24817     }
24818 
operator VkSpecializationMapEntry&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24819     operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
24820     {
24821       return *reinterpret_cast<VkSpecializationMapEntry*>( this );
24822     }
24823 
24824 
24825 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24826     auto operator<=>( SpecializationMapEntry const& ) const = default;
24827 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationMapEntry24828     bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
24829     {
24830       return ( constantID == rhs.constantID )
24831           && ( offset == rhs.offset )
24832           && ( size == rhs.size );
24833     }
24834 
operator !=VULKAN_HPP_NAMESPACE::SpecializationMapEntry24835     bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
24836     {
24837       return !operator==( rhs );
24838     }
24839 #endif
24840 
24841 
24842 
24843   public:
24844     uint32_t constantID = {};
24845     uint32_t offset = {};
24846     size_t size = {};
24847 
24848   };
24849   static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" );
24850   static_assert( std::is_standard_layout<SpecializationMapEntry>::value, "struct wrapper is not a standard layout!" );
24851 
24852   struct SpecializationInfo
24853   {
24854 
24855 
24856 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24857     VULKAN_HPP_CONSTEXPR SpecializationInfo(uint32_t mapEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {}, size_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
24858     : mapEntryCount( mapEntryCount_ ), pMapEntries( pMapEntries_ ), dataSize( dataSize_ ), pData( pData_ )
24859     {}
24860 
24861     VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24862 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24863     SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24864     {
24865       *this = rhs;
24866     }
24867 
24868 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24869     template <typename T>
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24870     SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ = {} )
24871     : mapEntryCount( static_cast<uint32_t>( mapEntries_.size() ) ), pMapEntries( mapEntries_.data() ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
24872     {}
24873 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24874 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24875 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo24876     SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24877     {
24878       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>( &rhs );
24879       return *this;
24880     }
24881 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo24882     SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24883     {
24884       memcpy( static_cast<void *>( this ), &rhs, sizeof( SpecializationInfo ) );
24885       return *this;
24886     }
24887 
setMapEntryCountVULKAN_HPP_NAMESPACE::SpecializationInfo24888     SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
24889     {
24890       mapEntryCount = mapEntryCount_;
24891       return *this;
24892     }
24893 
setPMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo24894     SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT
24895     {
24896       pMapEntries = pMapEntries_;
24897       return *this;
24898     }
24899 
24900 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo24901     SpecializationInfo & setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_ ) VULKAN_HPP_NOEXCEPT
24902     {
24903       mapEntryCount = static_cast<uint32_t>( mapEntries_.size() );
24904       pMapEntries = mapEntries_.data();
24905       return *this;
24906     }
24907 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24908 
setDataSizeVULKAN_HPP_NAMESPACE::SpecializationInfo24909     SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
24910     {
24911       dataSize = dataSize_;
24912       return *this;
24913     }
24914 
setPDataVULKAN_HPP_NAMESPACE::SpecializationInfo24915     SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
24916     {
24917       pData = pData_;
24918       return *this;
24919     }
24920 
24921 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24922     template <typename T>
setDataVULKAN_HPP_NAMESPACE::SpecializationInfo24923     SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
24924     {
24925       dataSize = data_.size() * sizeof(T);
24926       pData = data_.data();
24927       return *this;
24928     }
24929 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
24930 
24931 
operator VkSpecializationInfo const&VULKAN_HPP_NAMESPACE::SpecializationInfo24932     operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT
24933     {
24934       return *reinterpret_cast<const VkSpecializationInfo*>( this );
24935     }
24936 
operator VkSpecializationInfo&VULKAN_HPP_NAMESPACE::SpecializationInfo24937     operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
24938     {
24939       return *reinterpret_cast<VkSpecializationInfo*>( this );
24940     }
24941 
24942 
24943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24944     auto operator<=>( SpecializationInfo const& ) const = default;
24945 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationInfo24946     bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24947     {
24948       return ( mapEntryCount == rhs.mapEntryCount )
24949           && ( pMapEntries == rhs.pMapEntries )
24950           && ( dataSize == rhs.dataSize )
24951           && ( pData == rhs.pData );
24952     }
24953 
operator !=VULKAN_HPP_NAMESPACE::SpecializationInfo24954     bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24955     {
24956       return !operator==( rhs );
24957     }
24958 #endif
24959 
24960 
24961 
24962   public:
24963     uint32_t mapEntryCount = {};
24964     const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {};
24965     size_t dataSize = {};
24966     const void* pData = {};
24967 
24968   };
24969   static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" );
24970   static_assert( std::is_standard_layout<SpecializationInfo>::value, "struct wrapper is not a standard layout!" );
24971 
24972   struct PipelineShaderStageCreateInfo
24973   {
24974     static const bool allowDuplicate = false;
24975     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
24976 
24977 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24978     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
24979     : flags( flags_ ), stage( stage_ ), module( module_ ), pName( pName_ ), pSpecializationInfo( pSpecializationInfo_ )
24980     {}
24981 
24982     VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24983 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24984     PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24985     {
24986       *this = rhs;
24987     }
24988 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24989 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24990     PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24991     {
24992       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>( &rhs );
24993       return *this;
24994     }
24995 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24996     PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24997     {
24998       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineShaderStageCreateInfo ) );
24999       return *this;
25000     }
25001 
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25002     PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25003     {
25004       pNext = pNext_;
25005       return *this;
25006     }
25007 
setFlagsVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25008     PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
25009     {
25010       flags = flags_;
25011       return *this;
25012     }
25013 
setStageVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25014     PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
25015     {
25016       stage = stage_;
25017       return *this;
25018     }
25019 
setModuleVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25020     PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
25021     {
25022       module = module_;
25023       return *this;
25024     }
25025 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25026     PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT
25027     {
25028       pName = pName_;
25029       return *this;
25030     }
25031 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25032     PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
25033     {
25034       pSpecializationInfo = pSpecializationInfo_;
25035       return *this;
25036     }
25037 
25038 
operator VkPipelineShaderStageCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25039     operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
25040     {
25041       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
25042     }
25043 
operator VkPipelineShaderStageCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25044     operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
25045     {
25046       return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
25047     }
25048 
25049 
25050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25051     auto operator<=>( PipelineShaderStageCreateInfo const& ) const = default;
25052 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25053     bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25054     {
25055       return ( sType == rhs.sType )
25056           && ( pNext == rhs.pNext )
25057           && ( flags == rhs.flags )
25058           && ( stage == rhs.stage )
25059           && ( module == rhs.module )
25060           && ( pName == rhs.pName )
25061           && ( pSpecializationInfo == rhs.pSpecializationInfo );
25062     }
25063 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25064     bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25065     {
25066       return !operator==( rhs );
25067     }
25068 #endif
25069 
25070 
25071 
25072   public:
25073     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
25074     const void* pNext = {};
25075     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
25076     VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
25077     VULKAN_HPP_NAMESPACE::ShaderModule module = {};
25078     const char* pName = {};
25079     const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {};
25080 
25081   };
25082   static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" );
25083   static_assert( std::is_standard_layout<PipelineShaderStageCreateInfo>::value, "struct wrapper is not a standard layout!" );
25084 
25085   template <>
25086   struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
25087   {
25088     using Type = PipelineShaderStageCreateInfo;
25089   };
25090 
25091   class PipelineLayout
25092   {
25093   public:
25094     using CType = VkPipelineLayout;
25095 
25096     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout;
25097     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
25098 
25099   public:
PipelineLayout()25100     VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT
25101       : m_pipelineLayout(VK_NULL_HANDLE)
25102     {}
25103 
PipelineLayout(std::nullptr_t)25104     VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25105       : m_pipelineLayout(VK_NULL_HANDLE)
25106     {}
25107 
PipelineLayout(VkPipelineLayout pipelineLayout)25108     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT
25109       : m_pipelineLayout( pipelineLayout )
25110     {}
25111 
25112 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineLayout pipelineLayout)25113     PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT
25114     {
25115       m_pipelineLayout = pipelineLayout;
25116       return *this;
25117     }
25118 #endif
25119 
operator =(std::nullptr_t)25120     PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25121     {
25122       m_pipelineLayout = VK_NULL_HANDLE;
25123       return *this;
25124     }
25125 
25126 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25127     auto operator<=>( PipelineLayout const& ) const = default;
25128 #else
operator ==(PipelineLayout const & rhs) const25129     bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25130     {
25131       return m_pipelineLayout == rhs.m_pipelineLayout;
25132     }
25133 
operator !=(PipelineLayout const & rhs) const25134     bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25135     {
25136       return m_pipelineLayout != rhs.m_pipelineLayout;
25137     }
25138 
operator <(PipelineLayout const & rhs) const25139     bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25140     {
25141       return m_pipelineLayout < rhs.m_pipelineLayout;
25142     }
25143 #endif
25144 
operator VkPipelineLayout() const25145     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT
25146     {
25147       return m_pipelineLayout;
25148     }
25149 
operator bool() const25150     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25151     {
25152       return m_pipelineLayout != VK_NULL_HANDLE;
25153     }
25154 
operator !() const25155     bool operator!() const VULKAN_HPP_NOEXCEPT
25156     {
25157       return m_pipelineLayout == VK_NULL_HANDLE;
25158     }
25159 
25160   private:
25161     VkPipelineLayout m_pipelineLayout;
25162   };
25163   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
25164 
25165   template <>
25166   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineLayout>
25167   {
25168     using type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25169   };
25170 
25171   template <>
25172   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout>
25173   {
25174     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25175   };
25176 
25177 
25178   template <>
25179   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout>
25180   {
25181     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25182   };
25183 
25184 
25185   template <>
25186   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineLayout>
25187   {
25188     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25189   };
25190 
25191   class Pipeline
25192   {
25193   public:
25194     using CType = VkPipeline;
25195 
25196     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
25197     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
25198 
25199   public:
Pipeline()25200     VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT
25201       : m_pipeline(VK_NULL_HANDLE)
25202     {}
25203 
Pipeline(std::nullptr_t)25204     VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25205       : m_pipeline(VK_NULL_HANDLE)
25206     {}
25207 
Pipeline(VkPipeline pipeline)25208     VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT
25209       : m_pipeline( pipeline )
25210     {}
25211 
25212 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipeline pipeline)25213     Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT
25214     {
25215       m_pipeline = pipeline;
25216       return *this;
25217     }
25218 #endif
25219 
operator =(std::nullptr_t)25220     Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25221     {
25222       m_pipeline = VK_NULL_HANDLE;
25223       return *this;
25224     }
25225 
25226 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25227     auto operator<=>( Pipeline const& ) const = default;
25228 #else
operator ==(Pipeline const & rhs) const25229     bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25230     {
25231       return m_pipeline == rhs.m_pipeline;
25232     }
25233 
operator !=(Pipeline const & rhs) const25234     bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25235     {
25236       return m_pipeline != rhs.m_pipeline;
25237     }
25238 
operator <(Pipeline const & rhs) const25239     bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25240     {
25241       return m_pipeline < rhs.m_pipeline;
25242     }
25243 #endif
25244 
operator VkPipeline() const25245     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT
25246     {
25247       return m_pipeline;
25248     }
25249 
operator bool() const25250     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25251     {
25252       return m_pipeline != VK_NULL_HANDLE;
25253     }
25254 
operator !() const25255     bool operator!() const VULKAN_HPP_NOEXCEPT
25256     {
25257       return m_pipeline == VK_NULL_HANDLE;
25258     }
25259 
25260   private:
25261     VkPipeline m_pipeline;
25262   };
25263   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
25264 
25265   template <>
25266   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipeline>
25267   {
25268     using type = VULKAN_HPP_NAMESPACE::Pipeline;
25269   };
25270 
25271   template <>
25272   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipeline>
25273   {
25274     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
25275   };
25276 
25277 
25278   template <>
25279   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline>
25280   {
25281     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
25282   };
25283 
25284 
25285   template <>
25286   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Pipeline>
25287   {
25288     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25289   };
25290 
25291   struct ComputePipelineCreateInfo
25292   {
25293     static const bool allowDuplicate = false;
25294     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
25295 
25296 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25297     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
25298     : flags( flags_ ), stage( stage_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
25299     {}
25300 
25301     VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25302 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25303     ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25304     {
25305       *this = rhs;
25306     }
25307 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25308 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25309     ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25310     {
25311       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>( &rhs );
25312       return *this;
25313     }
25314 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25315     ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25316     {
25317       memcpy( static_cast<void *>( this ), &rhs, sizeof( ComputePipelineCreateInfo ) );
25318       return *this;
25319     }
25320 
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25321     ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25322     {
25323       pNext = pNext_;
25324       return *this;
25325     }
25326 
setFlagsVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25327     ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
25328     {
25329       flags = flags_;
25330       return *this;
25331     }
25332 
setStageVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25333     ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
25334     {
25335       stage = stage_;
25336       return *this;
25337     }
25338 
setLayoutVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25339     ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
25340     {
25341       layout = layout_;
25342       return *this;
25343     }
25344 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25345     ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
25346     {
25347       basePipelineHandle = basePipelineHandle_;
25348       return *this;
25349     }
25350 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25351     ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
25352     {
25353       basePipelineIndex = basePipelineIndex_;
25354       return *this;
25355     }
25356 
25357 
operator VkComputePipelineCreateInfo const&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25358     operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
25359     {
25360       return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
25361     }
25362 
operator VkComputePipelineCreateInfo&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25363     operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
25364     {
25365       return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
25366     }
25367 
25368 
25369 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25370     auto operator<=>( ComputePipelineCreateInfo const& ) const = default;
25371 #else
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25372     bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25373     {
25374       return ( sType == rhs.sType )
25375           && ( pNext == rhs.pNext )
25376           && ( flags == rhs.flags )
25377           && ( stage == rhs.stage )
25378           && ( layout == rhs.layout )
25379           && ( basePipelineHandle == rhs.basePipelineHandle )
25380           && ( basePipelineIndex == rhs.basePipelineIndex );
25381     }
25382 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25383     bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25384     {
25385       return !operator==( rhs );
25386     }
25387 #endif
25388 
25389 
25390 
25391   public:
25392     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
25393     const void* pNext = {};
25394     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
25395     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
25396     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
25397     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
25398     int32_t basePipelineIndex = {};
25399 
25400   };
25401   static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" );
25402   static_assert( std::is_standard_layout<ComputePipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
25403 
25404   template <>
25405   struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
25406   {
25407     using Type = ComputePipelineCreateInfo;
25408   };
25409 
25410   struct ConditionalRenderingBeginInfoEXT
25411   {
25412     static const bool allowDuplicate = false;
25413     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
25414 
25415 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25416     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
25417     : buffer( buffer_ ), offset( offset_ ), flags( flags_ )
25418     {}
25419 
25420     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25421 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25422     ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25423     {
25424       *this = rhs;
25425     }
25426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25427 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25428     ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25429     {
25430       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>( &rhs );
25431       return *this;
25432     }
25433 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25434     ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25435     {
25436       memcpy( static_cast<void *>( this ), &rhs, sizeof( ConditionalRenderingBeginInfoEXT ) );
25437       return *this;
25438     }
25439 
setPNextVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25440     ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25441     {
25442       pNext = pNext_;
25443       return *this;
25444     }
25445 
setBufferVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25446     ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
25447     {
25448       buffer = buffer_;
25449       return *this;
25450     }
25451 
setOffsetVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25452     ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
25453     {
25454       offset = offset_;
25455       return *this;
25456     }
25457 
setFlagsVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25458     ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
25459     {
25460       flags = flags_;
25461       return *this;
25462     }
25463 
25464 
operator VkConditionalRenderingBeginInfoEXT const&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25465     operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
25466     {
25467       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
25468     }
25469 
operator VkConditionalRenderingBeginInfoEXT&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25470     operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
25471     {
25472       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
25473     }
25474 
25475 
25476 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25477     auto operator<=>( ConditionalRenderingBeginInfoEXT const& ) const = default;
25478 #else
operator ==VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25479     bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25480     {
25481       return ( sType == rhs.sType )
25482           && ( pNext == rhs.pNext )
25483           && ( buffer == rhs.buffer )
25484           && ( offset == rhs.offset )
25485           && ( flags == rhs.flags );
25486     }
25487 
operator !=VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25488     bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25489     {
25490       return !operator==( rhs );
25491     }
25492 #endif
25493 
25494 
25495 
25496   public:
25497     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
25498     const void* pNext = {};
25499     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
25500     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
25501     VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
25502 
25503   };
25504   static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" );
25505   static_assert( std::is_standard_layout<ConditionalRenderingBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
25506 
25507   template <>
25508   struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
25509   {
25510     using Type = ConditionalRenderingBeginInfoEXT;
25511   };
25512 
25513   struct ConformanceVersion
25514   {
25515 
25516 
25517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion25518     VULKAN_HPP_CONSTEXPR ConformanceVersion(uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {}) VULKAN_HPP_NOEXCEPT
25519     : major( major_ ), minor( minor_ ), subminor( subminor_ ), patch( patch_ )
25520     {}
25521 
25522     VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25523 
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion25524     ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25525     {
25526       *this = rhs;
25527     }
25528 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25529 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion25530     ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25531     {
25532       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>( &rhs );
25533       return *this;
25534     }
25535 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion25536     ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25537     {
25538       memcpy( static_cast<void *>( this ), &rhs, sizeof( ConformanceVersion ) );
25539       return *this;
25540     }
25541 
setMajorVULKAN_HPP_NAMESPACE::ConformanceVersion25542     ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
25543     {
25544       major = major_;
25545       return *this;
25546     }
25547 
setMinorVULKAN_HPP_NAMESPACE::ConformanceVersion25548     ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
25549     {
25550       minor = minor_;
25551       return *this;
25552     }
25553 
setSubminorVULKAN_HPP_NAMESPACE::ConformanceVersion25554     ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
25555     {
25556       subminor = subminor_;
25557       return *this;
25558     }
25559 
setPatchVULKAN_HPP_NAMESPACE::ConformanceVersion25560     ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
25561     {
25562       patch = patch_;
25563       return *this;
25564     }
25565 
25566 
operator VkConformanceVersion const&VULKAN_HPP_NAMESPACE::ConformanceVersion25567     operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT
25568     {
25569       return *reinterpret_cast<const VkConformanceVersion*>( this );
25570     }
25571 
operator VkConformanceVersion&VULKAN_HPP_NAMESPACE::ConformanceVersion25572     operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
25573     {
25574       return *reinterpret_cast<VkConformanceVersion*>( this );
25575     }
25576 
25577 
25578 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25579     auto operator<=>( ConformanceVersion const& ) const = default;
25580 #else
operator ==VULKAN_HPP_NAMESPACE::ConformanceVersion25581     bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
25582     {
25583       return ( major == rhs.major )
25584           && ( minor == rhs.minor )
25585           && ( subminor == rhs.subminor )
25586           && ( patch == rhs.patch );
25587     }
25588 
operator !=VULKAN_HPP_NAMESPACE::ConformanceVersion25589     bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
25590     {
25591       return !operator==( rhs );
25592     }
25593 #endif
25594 
25595 
25596 
25597   public:
25598     uint8_t major = {};
25599     uint8_t minor = {};
25600     uint8_t subminor = {};
25601     uint8_t patch = {};
25602 
25603   };
25604   static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" );
25605   static_assert( std::is_standard_layout<ConformanceVersion>::value, "struct wrapper is not a standard layout!" );
25606   using ConformanceVersionKHR = ConformanceVersion;
25607 
25608   struct CooperativeMatrixPropertiesNV
25609   {
25610     static const bool allowDuplicate = false;
25611     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
25612 
25613 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25614     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
25615     : MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), DType( DType_ ), scope( scope_ )
25616     {}
25617 
25618     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25619 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25620     CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25621     {
25622       *this = rhs;
25623     }
25624 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25625 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25626     CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25627     {
25628       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>( &rhs );
25629       return *this;
25630     }
25631 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25632     CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25633     {
25634       memcpy( static_cast<void *>( this ), &rhs, sizeof( CooperativeMatrixPropertiesNV ) );
25635       return *this;
25636     }
25637 
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25638     CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
25639     {
25640       pNext = pNext_;
25641       return *this;
25642     }
25643 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25644     CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
25645     {
25646       MSize = MSize_;
25647       return *this;
25648     }
25649 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25650     CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
25651     {
25652       NSize = NSize_;
25653       return *this;
25654     }
25655 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25656     CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
25657     {
25658       KSize = KSize_;
25659       return *this;
25660     }
25661 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25662     CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
25663     {
25664       AType = AType_;
25665       return *this;
25666     }
25667 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25668     CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
25669     {
25670       BType = BType_;
25671       return *this;
25672     }
25673 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25674     CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
25675     {
25676       CType = CType_;
25677       return *this;
25678     }
25679 
setDTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25680     CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
25681     {
25682       DType = DType_;
25683       return *this;
25684     }
25685 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25686     CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
25687     {
25688       scope = scope_;
25689       return *this;
25690     }
25691 
25692 
operator VkCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25693     operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
25694     {
25695       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
25696     }
25697 
operator VkCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25698     operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
25699     {
25700       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
25701     }
25702 
25703 
25704 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25705     auto operator<=>( CooperativeMatrixPropertiesNV const& ) const = default;
25706 #else
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25707     bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
25708     {
25709       return ( sType == rhs.sType )
25710           && ( pNext == rhs.pNext )
25711           && ( MSize == rhs.MSize )
25712           && ( NSize == rhs.NSize )
25713           && ( KSize == rhs.KSize )
25714           && ( AType == rhs.AType )
25715           && ( BType == rhs.BType )
25716           && ( CType == rhs.CType )
25717           && ( DType == rhs.DType )
25718           && ( scope == rhs.scope );
25719     }
25720 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25721     bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
25722     {
25723       return !operator==( rhs );
25724     }
25725 #endif
25726 
25727 
25728 
25729   public:
25730     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
25731     void* pNext = {};
25732     uint32_t MSize = {};
25733     uint32_t NSize = {};
25734     uint32_t KSize = {};
25735     VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25736     VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25737     VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25738     VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25739     VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice;
25740 
25741   };
25742   static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
25743   static_assert( std::is_standard_layout<CooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
25744 
25745   template <>
25746   struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
25747   {
25748     using Type = CooperativeMatrixPropertiesNV;
25749   };
25750 
25751 #ifdef VK_ENABLE_BETA_EXTENSIONS
25752   struct CopyAccelerationStructureInfoKHR
25753   {
25754     static const bool allowDuplicate = false;
25755     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
25756 
25757 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25758     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
25759     : src( src_ ), dst( dst_ ), mode( mode_ )
25760     {}
25761 
25762     VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25763 
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25764     CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25765     {
25766       *this = rhs;
25767     }
25768 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25769 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25770     CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25771     {
25772       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>( &rhs );
25773       return *this;
25774     }
25775 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25776     CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25777     {
25778       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyAccelerationStructureInfoKHR ) );
25779       return *this;
25780     }
25781 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25782     CopyAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25783     {
25784       pNext = pNext_;
25785       return *this;
25786     }
25787 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25788     CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
25789     {
25790       src = src_;
25791       return *this;
25792     }
25793 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25794     CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
25795     {
25796       dst = dst_;
25797       return *this;
25798     }
25799 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25800     CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
25801     {
25802       mode = mode_;
25803       return *this;
25804     }
25805 
25806 
operator VkCopyAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25807     operator VkCopyAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
25808     {
25809       return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( this );
25810     }
25811 
operator VkCopyAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25812     operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
25813     {
25814       return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR*>( this );
25815     }
25816 
25817 
25818 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25819     auto operator<=>( CopyAccelerationStructureInfoKHR const& ) const = default;
25820 #else
operator ==VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25821     bool operator==( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25822     {
25823       return ( sType == rhs.sType )
25824           && ( pNext == rhs.pNext )
25825           && ( src == rhs.src )
25826           && ( dst == rhs.dst )
25827           && ( mode == rhs.mode );
25828     }
25829 
operator !=VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25830     bool operator!=( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25831     {
25832       return !operator==( rhs );
25833     }
25834 #endif
25835 
25836 
25837 
25838   public:
25839     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
25840     const void* pNext = {};
25841     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
25842     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
25843     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
25844 
25845   };
25846   static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
25847   static_assert( std::is_standard_layout<CopyAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
25848 
25849   template <>
25850   struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
25851   {
25852     using Type = CopyAccelerationStructureInfoKHR;
25853   };
25854 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
25855 
25856 #ifdef VK_ENABLE_BETA_EXTENSIONS
25857   struct CopyAccelerationStructureToMemoryInfoKHR
25858   {
25859     static const bool allowDuplicate = false;
25860     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
25861 
25862 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25863     CopyAccelerationStructureToMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
25864     : src( src_ ), dst( dst_ ), mode( mode_ )
25865     {}
25866 
25867     CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25868 
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25869     CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25870     {
25871       *this = rhs;
25872     }
25873 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25874 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25875     CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25876     {
25877       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs );
25878       return *this;
25879     }
25880 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25881     CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25882     {
25883       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyAccelerationStructureToMemoryInfoKHR ) );
25884       return *this;
25885     }
25886 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25887     CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25888     {
25889       pNext = pNext_;
25890       return *this;
25891     }
25892 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25893     CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
25894     {
25895       src = src_;
25896       return *this;
25897     }
25898 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25899     CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
25900     {
25901       dst = dst_;
25902       return *this;
25903     }
25904 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25905     CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
25906     {
25907       mode = mode_;
25908       return *this;
25909     }
25910 
25911 
operator VkCopyAccelerationStructureToMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25912     operator VkCopyAccelerationStructureToMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
25913     {
25914       return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
25915     }
25916 
operator VkCopyAccelerationStructureToMemoryInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR25917     operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
25918     {
25919       return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
25920     }
25921 
25922 
25923 
25924 
25925   public:
25926     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
25927     const void* pNext = {};
25928     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
25929     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
25930     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
25931 
25932   };
25933   static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), "struct and wrapper have different size!" );
25934   static_assert( std::is_standard_layout<CopyAccelerationStructureToMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
25935 
25936   template <>
25937   struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
25938   {
25939     using Type = CopyAccelerationStructureToMemoryInfoKHR;
25940   };
25941 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
25942 
25943   struct CopyBufferInfo2KHR
25944   {
25945     static const bool allowDuplicate = false;
25946     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2KHR;
25947 
25948 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25949     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
25950     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
25951     {}
25952 
25953     VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25954 
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25955     CopyBufferInfo2KHR( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
25956     {
25957       *this = rhs;
25958     }
25959 
25960 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25961     CopyBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ )
25962     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
25963     {}
25964 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25965 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25966 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25967     CopyBufferInfo2KHR & operator=( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
25968     {
25969       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR const *>( &rhs );
25970       return *this;
25971     }
25972 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25973     CopyBufferInfo2KHR & operator=( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
25974     {
25975       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyBufferInfo2KHR ) );
25976       return *this;
25977     }
25978 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25979     CopyBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25980     {
25981       pNext = pNext_;
25982       return *this;
25983     }
25984 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25985     CopyBufferInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
25986     {
25987       srcBuffer = srcBuffer_;
25988       return *this;
25989     }
25990 
setDstBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25991     CopyBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
25992     {
25993       dstBuffer = dstBuffer_;
25994       return *this;
25995     }
25996 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR25997     CopyBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
25998     {
25999       regionCount = regionCount_;
26000       return *this;
26001     }
26002 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26003     CopyBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26004     {
26005       pRegions = pRegions_;
26006       return *this;
26007     }
26008 
26009 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26010     CopyBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26011     {
26012       regionCount = static_cast<uint32_t>( regions_.size() );
26013       pRegions = regions_.data();
26014       return *this;
26015     }
26016 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26017 
26018 
operator VkCopyBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26019     operator VkCopyBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26020     {
26021       return *reinterpret_cast<const VkCopyBufferInfo2KHR*>( this );
26022     }
26023 
operator VkCopyBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26024     operator VkCopyBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
26025     {
26026       return *reinterpret_cast<VkCopyBufferInfo2KHR*>( this );
26027     }
26028 
26029 
26030 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26031     auto operator<=>( CopyBufferInfo2KHR const& ) const = default;
26032 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26033     bool operator==( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26034     {
26035       return ( sType == rhs.sType )
26036           && ( pNext == rhs.pNext )
26037           && ( srcBuffer == rhs.srcBuffer )
26038           && ( dstBuffer == rhs.dstBuffer )
26039           && ( regionCount == rhs.regionCount )
26040           && ( pRegions == rhs.pRegions );
26041     }
26042 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26043     bool operator!=( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26044     {
26045       return !operator==( rhs );
26046     }
26047 #endif
26048 
26049 
26050 
26051   public:
26052     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2KHR;
26053     const void* pNext = {};
26054     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
26055     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
26056     uint32_t regionCount = {};
26057     const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions = {};
26058 
26059   };
26060   static_assert( sizeof( CopyBufferInfo2KHR ) == sizeof( VkCopyBufferInfo2KHR ), "struct and wrapper have different size!" );
26061   static_assert( std::is_standard_layout<CopyBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26062 
26063   template <>
26064   struct CppType<StructureType, StructureType::eCopyBufferInfo2KHR>
26065   {
26066     using Type = CopyBufferInfo2KHR;
26067   };
26068 
26069   struct CopyBufferToImageInfo2KHR
26070   {
26071     static const bool allowDuplicate = false;
26072     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2KHR;
26073 
26074 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26075     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
26076     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26077     {}
26078 
26079     VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26080 
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26081     CopyBufferToImageInfo2KHR( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26082     {
26083       *this = rhs;
26084     }
26085 
26086 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26087     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_ )
26088     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26089     {}
26090 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26091 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26092 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26093     CopyBufferToImageInfo2KHR & operator=( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26094     {
26095       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR const *>( &rhs );
26096       return *this;
26097     }
26098 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26099     CopyBufferToImageInfo2KHR & operator=( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26100     {
26101       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyBufferToImageInfo2KHR ) );
26102       return *this;
26103     }
26104 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26105     CopyBufferToImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26106     {
26107       pNext = pNext_;
26108       return *this;
26109     }
26110 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26111     CopyBufferToImageInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
26112     {
26113       srcBuffer = srcBuffer_;
26114       return *this;
26115     }
26116 
setDstImageVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26117     CopyBufferToImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
26118     {
26119       dstImage = dstImage_;
26120       return *this;
26121     }
26122 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26123     CopyBufferToImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
26124     {
26125       dstImageLayout = dstImageLayout_;
26126       return *this;
26127     }
26128 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26129     CopyBufferToImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26130     {
26131       regionCount = regionCount_;
26132       return *this;
26133     }
26134 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26135     CopyBufferToImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26136     {
26137       pRegions = pRegions_;
26138       return *this;
26139     }
26140 
26141 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26142     CopyBufferToImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26143     {
26144       regionCount = static_cast<uint32_t>( regions_.size() );
26145       pRegions = regions_.data();
26146       return *this;
26147     }
26148 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26149 
26150 
operator VkCopyBufferToImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26151     operator VkCopyBufferToImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26152     {
26153       return *reinterpret_cast<const VkCopyBufferToImageInfo2KHR*>( this );
26154     }
26155 
operator VkCopyBufferToImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26156     operator VkCopyBufferToImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
26157     {
26158       return *reinterpret_cast<VkCopyBufferToImageInfo2KHR*>( this );
26159     }
26160 
26161 
26162 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26163     auto operator<=>( CopyBufferToImageInfo2KHR const& ) const = default;
26164 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26165     bool operator==( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26166     {
26167       return ( sType == rhs.sType )
26168           && ( pNext == rhs.pNext )
26169           && ( srcBuffer == rhs.srcBuffer )
26170           && ( dstImage == rhs.dstImage )
26171           && ( dstImageLayout == rhs.dstImageLayout )
26172           && ( regionCount == rhs.regionCount )
26173           && ( pRegions == rhs.pRegions );
26174     }
26175 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26176     bool operator!=( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26177     {
26178       return !operator==( rhs );
26179     }
26180 #endif
26181 
26182 
26183 
26184   public:
26185     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2KHR;
26186     const void* pNext = {};
26187     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
26188     VULKAN_HPP_NAMESPACE::Image dstImage = {};
26189     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26190     uint32_t regionCount = {};
26191     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
26192 
26193   };
26194   static_assert( sizeof( CopyBufferToImageInfo2KHR ) == sizeof( VkCopyBufferToImageInfo2KHR ), "struct and wrapper have different size!" );
26195   static_assert( std::is_standard_layout<CopyBufferToImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26196 
26197   template <>
26198   struct CppType<StructureType, StructureType::eCopyBufferToImageInfo2KHR>
26199   {
26200     using Type = CopyBufferToImageInfo2KHR;
26201   };
26202 
26203   class DescriptorSet
26204   {
26205   public:
26206     using CType = VkDescriptorSet;
26207 
26208     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet;
26209     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
26210 
26211   public:
DescriptorSet()26212     VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT
26213       : m_descriptorSet(VK_NULL_HANDLE)
26214     {}
26215 
DescriptorSet(std::nullptr_t)26216     VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26217       : m_descriptorSet(VK_NULL_HANDLE)
26218     {}
26219 
DescriptorSet(VkDescriptorSet descriptorSet)26220     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT
26221       : m_descriptorSet( descriptorSet )
26222     {}
26223 
26224 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSet descriptorSet)26225     DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT
26226     {
26227       m_descriptorSet = descriptorSet;
26228       return *this;
26229     }
26230 #endif
26231 
operator =(std::nullptr_t)26232     DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26233     {
26234       m_descriptorSet = VK_NULL_HANDLE;
26235       return *this;
26236     }
26237 
26238 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26239     auto operator<=>( DescriptorSet const& ) const = default;
26240 #else
operator ==(DescriptorSet const & rhs) const26241     bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26242     {
26243       return m_descriptorSet == rhs.m_descriptorSet;
26244     }
26245 
operator !=(DescriptorSet const & rhs) const26246     bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26247     {
26248       return m_descriptorSet != rhs.m_descriptorSet;
26249     }
26250 
operator <(DescriptorSet const & rhs) const26251     bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26252     {
26253       return m_descriptorSet < rhs.m_descriptorSet;
26254     }
26255 #endif
26256 
operator VkDescriptorSet() const26257     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT
26258     {
26259       return m_descriptorSet;
26260     }
26261 
operator bool() const26262     explicit operator bool() const VULKAN_HPP_NOEXCEPT
26263     {
26264       return m_descriptorSet != VK_NULL_HANDLE;
26265     }
26266 
operator !() const26267     bool operator!() const VULKAN_HPP_NOEXCEPT
26268     {
26269       return m_descriptorSet == VK_NULL_HANDLE;
26270     }
26271 
26272   private:
26273     VkDescriptorSet m_descriptorSet;
26274   };
26275   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
26276 
26277   template <>
26278   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSet>
26279   {
26280     using type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26281   };
26282 
26283   template <>
26284   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet>
26285   {
26286     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26287   };
26288 
26289 
26290   template <>
26291   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet>
26292   {
26293     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26294   };
26295 
26296 
26297   template <>
26298   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSet>
26299   {
26300     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26301   };
26302 
26303   struct CopyDescriptorSet
26304   {
26305     static const bool allowDuplicate = false;
26306     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
26307 
26308 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26309     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
26310     : srcSet( srcSet_ ), srcBinding( srcBinding_ ), srcArrayElement( srcArrayElement_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ )
26311     {}
26312 
26313     VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26314 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26315     CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26316     {
26317       *this = rhs;
26318     }
26319 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26320 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet26321     CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26322     {
26323       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>( &rhs );
26324       return *this;
26325     }
26326 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet26327     CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26328     {
26329       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyDescriptorSet ) );
26330       return *this;
26331     }
26332 
setPNextVULKAN_HPP_NAMESPACE::CopyDescriptorSet26333     CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26334     {
26335       pNext = pNext_;
26336       return *this;
26337     }
26338 
setSrcSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26339     CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
26340     {
26341       srcSet = srcSet_;
26342       return *this;
26343     }
26344 
setSrcBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet26345     CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
26346     {
26347       srcBinding = srcBinding_;
26348       return *this;
26349     }
26350 
setSrcArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet26351     CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
26352     {
26353       srcArrayElement = srcArrayElement_;
26354       return *this;
26355     }
26356 
setDstSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26357     CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
26358     {
26359       dstSet = dstSet_;
26360       return *this;
26361     }
26362 
setDstBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet26363     CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
26364     {
26365       dstBinding = dstBinding_;
26366       return *this;
26367     }
26368 
setDstArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet26369     CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
26370     {
26371       dstArrayElement = dstArrayElement_;
26372       return *this;
26373     }
26374 
setDescriptorCountVULKAN_HPP_NAMESPACE::CopyDescriptorSet26375     CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
26376     {
26377       descriptorCount = descriptorCount_;
26378       return *this;
26379     }
26380 
26381 
operator VkCopyDescriptorSet const&VULKAN_HPP_NAMESPACE::CopyDescriptorSet26382     operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
26383     {
26384       return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
26385     }
26386 
operator VkCopyDescriptorSet&VULKAN_HPP_NAMESPACE::CopyDescriptorSet26387     operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
26388     {
26389       return *reinterpret_cast<VkCopyDescriptorSet*>( this );
26390     }
26391 
26392 
26393 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26394     auto operator<=>( CopyDescriptorSet const& ) const = default;
26395 #else
operator ==VULKAN_HPP_NAMESPACE::CopyDescriptorSet26396     bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
26397     {
26398       return ( sType == rhs.sType )
26399           && ( pNext == rhs.pNext )
26400           && ( srcSet == rhs.srcSet )
26401           && ( srcBinding == rhs.srcBinding )
26402           && ( srcArrayElement == rhs.srcArrayElement )
26403           && ( dstSet == rhs.dstSet )
26404           && ( dstBinding == rhs.dstBinding )
26405           && ( dstArrayElement == rhs.dstArrayElement )
26406           && ( descriptorCount == rhs.descriptorCount );
26407     }
26408 
operator !=VULKAN_HPP_NAMESPACE::CopyDescriptorSet26409     bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
26410     {
26411       return !operator==( rhs );
26412     }
26413 #endif
26414 
26415 
26416 
26417   public:
26418     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
26419     const void* pNext = {};
26420     VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
26421     uint32_t srcBinding = {};
26422     uint32_t srcArrayElement = {};
26423     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
26424     uint32_t dstBinding = {};
26425     uint32_t dstArrayElement = {};
26426     uint32_t descriptorCount = {};
26427 
26428   };
26429   static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" );
26430   static_assert( std::is_standard_layout<CopyDescriptorSet>::value, "struct wrapper is not a standard layout!" );
26431 
26432   template <>
26433   struct CppType<StructureType, StructureType::eCopyDescriptorSet>
26434   {
26435     using Type = CopyDescriptorSet;
26436   };
26437 
26438   struct ImageCopy2KHR
26439   {
26440     static const bool allowDuplicate = false;
26441     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2KHR;
26442 
26443 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR26444     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
26445     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
26446     {}
26447 
26448     VULKAN_HPP_CONSTEXPR ImageCopy2KHR( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26449 
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR26450     ImageCopy2KHR( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26451     {
26452       *this = rhs;
26453     }
26454 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26455 
operator =VULKAN_HPP_NAMESPACE::ImageCopy2KHR26456     ImageCopy2KHR & operator=( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26457     {
26458       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy2KHR const *>( &rhs );
26459       return *this;
26460     }
26461 
operator =VULKAN_HPP_NAMESPACE::ImageCopy2KHR26462     ImageCopy2KHR & operator=( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26463     {
26464       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCopy2KHR ) );
26465       return *this;
26466     }
26467 
setPNextVULKAN_HPP_NAMESPACE::ImageCopy2KHR26468     ImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26469     {
26470       pNext = pNext_;
26471       return *this;
26472     }
26473 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR26474     ImageCopy2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
26475     {
26476       srcSubresource = srcSubresource_;
26477       return *this;
26478     }
26479 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR26480     ImageCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
26481     {
26482       srcOffset = srcOffset_;
26483       return *this;
26484     }
26485 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR26486     ImageCopy2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
26487     {
26488       dstSubresource = dstSubresource_;
26489       return *this;
26490     }
26491 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR26492     ImageCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
26493     {
26494       dstOffset = dstOffset_;
26495       return *this;
26496     }
26497 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy2KHR26498     ImageCopy2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
26499     {
26500       extent = extent_;
26501       return *this;
26502     }
26503 
26504 
operator VkImageCopy2KHR const&VULKAN_HPP_NAMESPACE::ImageCopy2KHR26505     operator VkImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
26506     {
26507       return *reinterpret_cast<const VkImageCopy2KHR*>( this );
26508     }
26509 
operator VkImageCopy2KHR&VULKAN_HPP_NAMESPACE::ImageCopy2KHR26510     operator VkImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
26511     {
26512       return *reinterpret_cast<VkImageCopy2KHR*>( this );
26513     }
26514 
26515 
26516 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26517     auto operator<=>( ImageCopy2KHR const& ) const = default;
26518 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy2KHR26519     bool operator==( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26520     {
26521       return ( sType == rhs.sType )
26522           && ( pNext == rhs.pNext )
26523           && ( srcSubresource == rhs.srcSubresource )
26524           && ( srcOffset == rhs.srcOffset )
26525           && ( dstSubresource == rhs.dstSubresource )
26526           && ( dstOffset == rhs.dstOffset )
26527           && ( extent == rhs.extent );
26528     }
26529 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy2KHR26530     bool operator!=( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26531     {
26532       return !operator==( rhs );
26533     }
26534 #endif
26535 
26536 
26537 
26538   public:
26539     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2KHR;
26540     const void* pNext = {};
26541     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
26542     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
26543     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
26544     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
26545     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
26546 
26547   };
26548   static_assert( sizeof( ImageCopy2KHR ) == sizeof( VkImageCopy2KHR ), "struct and wrapper have different size!" );
26549   static_assert( std::is_standard_layout<ImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
26550 
26551   template <>
26552   struct CppType<StructureType, StructureType::eImageCopy2KHR>
26553   {
26554     using Type = ImageCopy2KHR;
26555   };
26556 
26557   struct CopyImageInfo2KHR
26558   {
26559     static const bool allowDuplicate = false;
26560     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2KHR;
26561 
26562 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26563     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
26564     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26565     {}
26566 
26567     VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26568 
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26569     CopyImageInfo2KHR( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26570     {
26571       *this = rhs;
26572     }
26573 
26574 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26575     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_ )
26576     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26577     {}
26578 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26579 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26580 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26581     CopyImageInfo2KHR & operator=( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26582     {
26583       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR const *>( &rhs );
26584       return *this;
26585     }
26586 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26587     CopyImageInfo2KHR & operator=( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26588     {
26589       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyImageInfo2KHR ) );
26590       return *this;
26591     }
26592 
setPNextVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26593     CopyImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26594     {
26595       pNext = pNext_;
26596       return *this;
26597     }
26598 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26599     CopyImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
26600     {
26601       srcImage = srcImage_;
26602       return *this;
26603     }
26604 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26605     CopyImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
26606     {
26607       srcImageLayout = srcImageLayout_;
26608       return *this;
26609     }
26610 
setDstImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26611     CopyImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
26612     {
26613       dstImage = dstImage_;
26614       return *this;
26615     }
26616 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26617     CopyImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
26618     {
26619       dstImageLayout = dstImageLayout_;
26620       return *this;
26621     }
26622 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26623     CopyImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26624     {
26625       regionCount = regionCount_;
26626       return *this;
26627     }
26628 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26629     CopyImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26630     {
26631       pRegions = pRegions_;
26632       return *this;
26633     }
26634 
26635 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26636     CopyImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26637     {
26638       regionCount = static_cast<uint32_t>( regions_.size() );
26639       pRegions = regions_.data();
26640       return *this;
26641     }
26642 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26643 
26644 
operator VkCopyImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26645     operator VkCopyImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26646     {
26647       return *reinterpret_cast<const VkCopyImageInfo2KHR*>( this );
26648     }
26649 
operator VkCopyImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26650     operator VkCopyImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
26651     {
26652       return *reinterpret_cast<VkCopyImageInfo2KHR*>( this );
26653     }
26654 
26655 
26656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26657     auto operator<=>( CopyImageInfo2KHR const& ) const = default;
26658 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26659     bool operator==( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26660     {
26661       return ( sType == rhs.sType )
26662           && ( pNext == rhs.pNext )
26663           && ( srcImage == rhs.srcImage )
26664           && ( srcImageLayout == rhs.srcImageLayout )
26665           && ( dstImage == rhs.dstImage )
26666           && ( dstImageLayout == rhs.dstImageLayout )
26667           && ( regionCount == rhs.regionCount )
26668           && ( pRegions == rhs.pRegions );
26669     }
26670 
operator !=VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26671     bool operator!=( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26672     {
26673       return !operator==( rhs );
26674     }
26675 #endif
26676 
26677 
26678 
26679   public:
26680     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2KHR;
26681     const void* pNext = {};
26682     VULKAN_HPP_NAMESPACE::Image srcImage = {};
26683     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26684     VULKAN_HPP_NAMESPACE::Image dstImage = {};
26685     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26686     uint32_t regionCount = {};
26687     const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions = {};
26688 
26689   };
26690   static_assert( sizeof( CopyImageInfo2KHR ) == sizeof( VkCopyImageInfo2KHR ), "struct and wrapper have different size!" );
26691   static_assert( std::is_standard_layout<CopyImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26692 
26693   template <>
26694   struct CppType<StructureType, StructureType::eCopyImageInfo2KHR>
26695   {
26696     using Type = CopyImageInfo2KHR;
26697   };
26698 
26699   struct CopyImageToBufferInfo2KHR
26700   {
26701     static const bool allowDuplicate = false;
26702     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2KHR;
26703 
26704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26705     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
26706     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26707     {}
26708 
26709     VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26710 
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26711     CopyImageToBufferInfo2KHR( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26712     {
26713       *this = rhs;
26714     }
26715 
26716 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26717     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_ )
26718     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26719     {}
26720 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26721 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26722 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26723     CopyImageToBufferInfo2KHR & operator=( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26724     {
26725       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR const *>( &rhs );
26726       return *this;
26727     }
26728 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26729     CopyImageToBufferInfo2KHR & operator=( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26730     {
26731       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyImageToBufferInfo2KHR ) );
26732       return *this;
26733     }
26734 
setPNextVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26735     CopyImageToBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26736     {
26737       pNext = pNext_;
26738       return *this;
26739     }
26740 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26741     CopyImageToBufferInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
26742     {
26743       srcImage = srcImage_;
26744       return *this;
26745     }
26746 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26747     CopyImageToBufferInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
26748     {
26749       srcImageLayout = srcImageLayout_;
26750       return *this;
26751     }
26752 
setDstBufferVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26753     CopyImageToBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
26754     {
26755       dstBuffer = dstBuffer_;
26756       return *this;
26757     }
26758 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26759     CopyImageToBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26760     {
26761       regionCount = regionCount_;
26762       return *this;
26763     }
26764 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26765     CopyImageToBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26766     {
26767       pRegions = pRegions_;
26768       return *this;
26769     }
26770 
26771 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26772     CopyImageToBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26773     {
26774       regionCount = static_cast<uint32_t>( regions_.size() );
26775       pRegions = regions_.data();
26776       return *this;
26777     }
26778 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26779 
26780 
operator VkCopyImageToBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26781     operator VkCopyImageToBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26782     {
26783       return *reinterpret_cast<const VkCopyImageToBufferInfo2KHR*>( this );
26784     }
26785 
operator VkCopyImageToBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26786     operator VkCopyImageToBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
26787     {
26788       return *reinterpret_cast<VkCopyImageToBufferInfo2KHR*>( this );
26789     }
26790 
26791 
26792 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26793     auto operator<=>( CopyImageToBufferInfo2KHR const& ) const = default;
26794 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26795     bool operator==( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26796     {
26797       return ( sType == rhs.sType )
26798           && ( pNext == rhs.pNext )
26799           && ( srcImage == rhs.srcImage )
26800           && ( srcImageLayout == rhs.srcImageLayout )
26801           && ( dstBuffer == rhs.dstBuffer )
26802           && ( regionCount == rhs.regionCount )
26803           && ( pRegions == rhs.pRegions );
26804     }
26805 
operator !=VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26806     bool operator!=( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26807     {
26808       return !operator==( rhs );
26809     }
26810 #endif
26811 
26812 
26813 
26814   public:
26815     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2KHR;
26816     const void* pNext = {};
26817     VULKAN_HPP_NAMESPACE::Image srcImage = {};
26818     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26819     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
26820     uint32_t regionCount = {};
26821     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
26822 
26823   };
26824   static_assert( sizeof( CopyImageToBufferInfo2KHR ) == sizeof( VkCopyImageToBufferInfo2KHR ), "struct and wrapper have different size!" );
26825   static_assert( std::is_standard_layout<CopyImageToBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26826 
26827   template <>
26828   struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2KHR>
26829   {
26830     using Type = CopyImageToBufferInfo2KHR;
26831   };
26832 
26833 #ifdef VK_ENABLE_BETA_EXTENSIONS
26834   struct CopyMemoryToAccelerationStructureInfoKHR
26835   {
26836     static const bool allowDuplicate = false;
26837     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
26838 
26839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26840     CopyMemoryToAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
26841     : src( src_ ), dst( dst_ ), mode( mode_ )
26842     {}
26843 
26844     CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26845 
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26846     CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26847     {
26848       *this = rhs;
26849     }
26850 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26851 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26852     CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26853     {
26854       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs );
26855       return *this;
26856     }
26857 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26858     CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26859     {
26860       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyMemoryToAccelerationStructureInfoKHR ) );
26861       return *this;
26862     }
26863 
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26864     CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26865     {
26866       pNext = pNext_;
26867       return *this;
26868     }
26869 
setSrcVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26870     CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
26871     {
26872       src = src_;
26873       return *this;
26874     }
26875 
setDstVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26876     CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
26877     {
26878       dst = dst_;
26879       return *this;
26880     }
26881 
setModeVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26882     CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
26883     {
26884       mode = mode_;
26885       return *this;
26886     }
26887 
26888 
operator VkCopyMemoryToAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26889     operator VkCopyMemoryToAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
26890     {
26891       return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
26892     }
26893 
operator VkCopyMemoryToAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR26894     operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
26895     {
26896       return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
26897     }
26898 
26899 
26900 
26901 
26902   public:
26903     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
26904     const void* pNext = {};
26905     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
26906     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
26907     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
26908 
26909   };
26910   static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
26911   static_assert( std::is_standard_layout<CopyMemoryToAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
26912 
26913   template <>
26914   struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
26915   {
26916     using Type = CopyMemoryToAccelerationStructureInfoKHR;
26917   };
26918 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
26919 
26920 #ifdef VK_USE_PLATFORM_WIN32_KHR
26921   struct D3D12FenceSubmitInfoKHR
26922   {
26923     static const bool allowDuplicate = false;
26924     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
26925 
26926 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26927     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR(uint32_t waitSemaphoreValuesCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValuesCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
26928     : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
26929     {}
26930 
26931     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26932 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26933     D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26934     {
26935       *this = rhs;
26936     }
26937 
26938 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26939     D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
26940     : waitSemaphoreValuesCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValuesCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
26941     {}
26942 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26943 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26944 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26945     D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26946     {
26947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>( &rhs );
26948       return *this;
26949     }
26950 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26951     D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26952     {
26953       memcpy( static_cast<void *>( this ), &rhs, sizeof( D3D12FenceSubmitInfoKHR ) );
26954       return *this;
26955     }
26956 
setPNextVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26957     D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26958     {
26959       pNext = pNext_;
26960       return *this;
26961     }
26962 
setWaitSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26963     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
26964     {
26965       waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
26966       return *this;
26967     }
26968 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26969     D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
26970     {
26971       pWaitSemaphoreValues = pWaitSemaphoreValues_;
26972       return *this;
26973     }
26974 
26975 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26976     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
26977     {
26978       waitSemaphoreValuesCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
26979       pWaitSemaphoreValues = waitSemaphoreValues_.data();
26980       return *this;
26981     }
26982 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26983 
setSignalSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26984     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
26985     {
26986       signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
26987       return *this;
26988     }
26989 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26990     D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
26991     {
26992       pSignalSemaphoreValues = pSignalSemaphoreValues_;
26993       return *this;
26994     }
26995 
26996 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR26997     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
26998     {
26999       signalSemaphoreValuesCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
27000       pSignalSemaphoreValues = signalSemaphoreValues_.data();
27001       return *this;
27002     }
27003 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27004 
27005 
operator VkD3D12FenceSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27006     operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
27007     {
27008       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
27009     }
27010 
operator VkD3D12FenceSubmitInfoKHR&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27011     operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
27012     {
27013       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
27014     }
27015 
27016 
27017 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27018     auto operator<=>( D3D12FenceSubmitInfoKHR const& ) const = default;
27019 #else
operator ==VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27020     bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27021     {
27022       return ( sType == rhs.sType )
27023           && ( pNext == rhs.pNext )
27024           && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
27025           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
27026           && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
27027           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
27028     }
27029 
operator !=VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27030     bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27031     {
27032       return !operator==( rhs );
27033     }
27034 #endif
27035 
27036 
27037 
27038   public:
27039     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
27040     const void* pNext = {};
27041     uint32_t waitSemaphoreValuesCount = {};
27042     const uint64_t* pWaitSemaphoreValues = {};
27043     uint32_t signalSemaphoreValuesCount = {};
27044     const uint64_t* pSignalSemaphoreValues = {};
27045 
27046   };
27047   static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" );
27048   static_assert( std::is_standard_layout<D3D12FenceSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
27049 
27050   template <>
27051   struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
27052   {
27053     using Type = D3D12FenceSubmitInfoKHR;
27054   };
27055 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
27056 
27057   struct DebugMarkerMarkerInfoEXT
27058   {
27059     static const bool allowDuplicate = false;
27060     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
27061 
27062 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27063     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT(const char* pMarkerName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
27064     : pMarkerName( pMarkerName_ ), color( color_ )
27065     {}
27066 
27067     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27068 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27069     DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27070     {
27071       *this = rhs;
27072     }
27073 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27074 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27075     DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27076     {
27077       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>( &rhs );
27078       return *this;
27079     }
27080 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27081     DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27082     {
27083       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerMarkerInfoEXT ) );
27084       return *this;
27085     }
27086 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27087     DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27088     {
27089       pNext = pNext_;
27090       return *this;
27091     }
27092 
setPMarkerNameVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27093     DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT
27094     {
27095       pMarkerName = pMarkerName_;
27096       return *this;
27097     }
27098 
setColorVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27099     DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
27100     {
27101       color = color_;
27102       return *this;
27103     }
27104 
27105 
operator VkDebugMarkerMarkerInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27106     operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27107     {
27108       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
27109     }
27110 
operator VkDebugMarkerMarkerInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27111     operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
27112     {
27113       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
27114     }
27115 
27116 
27117 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27118     auto operator<=>( DebugMarkerMarkerInfoEXT const& ) const = default;
27119 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27120     bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27121     {
27122       return ( sType == rhs.sType )
27123           && ( pNext == rhs.pNext )
27124           && ( pMarkerName == rhs.pMarkerName )
27125           && ( color == rhs.color );
27126     }
27127 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27128     bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27129     {
27130       return !operator==( rhs );
27131     }
27132 #endif
27133 
27134 
27135 
27136   public:
27137     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
27138     const void* pNext = {};
27139     const char* pMarkerName = {};
27140     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
27141 
27142   };
27143   static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" );
27144   static_assert( std::is_standard_layout<DebugMarkerMarkerInfoEXT>::value, "struct wrapper is not a standard layout!" );
27145 
27146   template <>
27147   struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
27148   {
27149     using Type = DebugMarkerMarkerInfoEXT;
27150   };
27151 
27152   struct DebugMarkerObjectNameInfoEXT
27153   {
27154     static const bool allowDuplicate = false;
27155     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
27156 
27157 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27158     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
27159     : objectType( objectType_ ), object( object_ ), pObjectName( pObjectName_ )
27160     {}
27161 
27162     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27163 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27164     DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27165     {
27166       *this = rhs;
27167     }
27168 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27169 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27170     DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27171     {
27172       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>( &rhs );
27173       return *this;
27174     }
27175 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27176     DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27177     {
27178       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerObjectNameInfoEXT ) );
27179       return *this;
27180     }
27181 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27182     DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27183     {
27184       pNext = pNext_;
27185       return *this;
27186     }
27187 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27188     DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
27189     {
27190       objectType = objectType_;
27191       return *this;
27192     }
27193 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27194     DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
27195     {
27196       object = object_;
27197       return *this;
27198     }
27199 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27200     DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
27201     {
27202       pObjectName = pObjectName_;
27203       return *this;
27204     }
27205 
27206 
operator VkDebugMarkerObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27207     operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27208     {
27209       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
27210     }
27211 
operator VkDebugMarkerObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27212     operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
27213     {
27214       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
27215     }
27216 
27217 
27218 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27219     auto operator<=>( DebugMarkerObjectNameInfoEXT const& ) const = default;
27220 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27221     bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27222     {
27223       return ( sType == rhs.sType )
27224           && ( pNext == rhs.pNext )
27225           && ( objectType == rhs.objectType )
27226           && ( object == rhs.object )
27227           && ( pObjectName == rhs.pObjectName );
27228     }
27229 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27230     bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27231     {
27232       return !operator==( rhs );
27233     }
27234 #endif
27235 
27236 
27237 
27238   public:
27239     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
27240     const void* pNext = {};
27241     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
27242     uint64_t object = {};
27243     const char* pObjectName = {};
27244 
27245   };
27246   static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" );
27247   static_assert( std::is_standard_layout<DebugMarkerObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
27248 
27249   template <>
27250   struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
27251   {
27252     using Type = DebugMarkerObjectNameInfoEXT;
27253   };
27254 
27255   struct DebugMarkerObjectTagInfoEXT
27256   {
27257     static const bool allowDuplicate = false;
27258     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
27259 
27260 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27261     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
27262     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
27263     {}
27264 
27265     VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27266 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27267     DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27268     {
27269       *this = rhs;
27270     }
27271 
27272 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27273     template <typename T>
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27274     DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
27275     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
27276     {}
27277 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27278 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27279 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27280     DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27281     {
27282       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>( &rhs );
27283       return *this;
27284     }
27285 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27286     DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27287     {
27288       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerObjectTagInfoEXT ) );
27289       return *this;
27290     }
27291 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27292     DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27293     {
27294       pNext = pNext_;
27295       return *this;
27296     }
27297 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27298     DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
27299     {
27300       objectType = objectType_;
27301       return *this;
27302     }
27303 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27304     DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
27305     {
27306       object = object_;
27307       return *this;
27308     }
27309 
setTagNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27310     DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
27311     {
27312       tagName = tagName_;
27313       return *this;
27314     }
27315 
setTagSizeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27316     DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
27317     {
27318       tagSize = tagSize_;
27319       return *this;
27320     }
27321 
setPTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27322     DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
27323     {
27324       pTag = pTag_;
27325       return *this;
27326     }
27327 
27328 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27329     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27330     DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
27331     {
27332       tagSize = tag_.size() * sizeof(T);
27333       pTag = tag_.data();
27334       return *this;
27335     }
27336 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27337 
27338 
operator VkDebugMarkerObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27339     operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27340     {
27341       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
27342     }
27343 
operator VkDebugMarkerObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27344     operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
27345     {
27346       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
27347     }
27348 
27349 
27350 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27351     auto operator<=>( DebugMarkerObjectTagInfoEXT const& ) const = default;
27352 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27353     bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27354     {
27355       return ( sType == rhs.sType )
27356           && ( pNext == rhs.pNext )
27357           && ( objectType == rhs.objectType )
27358           && ( object == rhs.object )
27359           && ( tagName == rhs.tagName )
27360           && ( tagSize == rhs.tagSize )
27361           && ( pTag == rhs.pTag );
27362     }
27363 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27364     bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27365     {
27366       return !operator==( rhs );
27367     }
27368 #endif
27369 
27370 
27371 
27372   public:
27373     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
27374     const void* pNext = {};
27375     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
27376     uint64_t object = {};
27377     uint64_t tagName = {};
27378     size_t tagSize = {};
27379     const void* pTag = {};
27380 
27381   };
27382   static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" );
27383   static_assert( std::is_standard_layout<DebugMarkerObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
27384 
27385   template <>
27386   struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
27387   {
27388     using Type = DebugMarkerObjectTagInfoEXT;
27389   };
27390 
27391   struct DebugReportCallbackCreateInfoEXT
27392   {
27393     static const bool allowDuplicate = false;
27394     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
27395 
27396 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27397     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
27398     : flags( flags_ ), pfnCallback( pfnCallback_ ), pUserData( pUserData_ )
27399     {}
27400 
27401     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27402 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27403     DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27404     {
27405       *this = rhs;
27406     }
27407 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27408 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27409     DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27410     {
27411       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>( &rhs );
27412       return *this;
27413     }
27414 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27415     DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27416     {
27417       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugReportCallbackCreateInfoEXT ) );
27418       return *this;
27419     }
27420 
setPNextVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27421     DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27422     {
27423       pNext = pNext_;
27424       return *this;
27425     }
27426 
setFlagsVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27427     DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
27428     {
27429       flags = flags_;
27430       return *this;
27431     }
27432 
setPfnCallbackVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27433     DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
27434     {
27435       pfnCallback = pfnCallback_;
27436       return *this;
27437     }
27438 
setPUserDataVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27439     DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
27440     {
27441       pUserData = pUserData_;
27442       return *this;
27443     }
27444 
27445 
operator VkDebugReportCallbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27446     operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27447     {
27448       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
27449     }
27450 
operator VkDebugReportCallbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27451     operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
27452     {
27453       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
27454     }
27455 
27456 
27457 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27458     auto operator<=>( DebugReportCallbackCreateInfoEXT const& ) const = default;
27459 #else
operator ==VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27460     bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27461     {
27462       return ( sType == rhs.sType )
27463           && ( pNext == rhs.pNext )
27464           && ( flags == rhs.flags )
27465           && ( pfnCallback == rhs.pfnCallback )
27466           && ( pUserData == rhs.pUserData );
27467     }
27468 
operator !=VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27469     bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27470     {
27471       return !operator==( rhs );
27472     }
27473 #endif
27474 
27475 
27476 
27477   public:
27478     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
27479     const void* pNext = {};
27480     VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
27481     PFN_vkDebugReportCallbackEXT pfnCallback = {};
27482     void* pUserData = {};
27483 
27484   };
27485   static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" );
27486   static_assert( std::is_standard_layout<DebugReportCallbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
27487 
27488   template <>
27489   struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
27490   {
27491     using Type = DebugReportCallbackCreateInfoEXT;
27492   };
27493 
27494   struct DebugUtilsLabelEXT
27495   {
27496     static const bool allowDuplicate = false;
27497     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
27498 
27499 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27500     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT(const char* pLabelName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
27501     : pLabelName( pLabelName_ ), color( color_ )
27502     {}
27503 
27504     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27505 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27506     DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27507     {
27508       *this = rhs;
27509     }
27510 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27511 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27512     DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27513     {
27514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>( &rhs );
27515       return *this;
27516     }
27517 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27518     DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27519     {
27520       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsLabelEXT ) );
27521       return *this;
27522     }
27523 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27524     DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27525     {
27526       pNext = pNext_;
27527       return *this;
27528     }
27529 
setPLabelNameVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27530     DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT
27531     {
27532       pLabelName = pLabelName_;
27533       return *this;
27534     }
27535 
setColorVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27536     DebugUtilsLabelEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
27537     {
27538       color = color_;
27539       return *this;
27540     }
27541 
27542 
operator VkDebugUtilsLabelEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27543     operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT
27544     {
27545       return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
27546     }
27547 
operator VkDebugUtilsLabelEXT&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27548     operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
27549     {
27550       return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
27551     }
27552 
27553 
27554 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27555     auto operator<=>( DebugUtilsLabelEXT const& ) const = default;
27556 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27557     bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27558     {
27559       return ( sType == rhs.sType )
27560           && ( pNext == rhs.pNext )
27561           && ( pLabelName == rhs.pLabelName )
27562           && ( color == rhs.color );
27563     }
27564 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27565     bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27566     {
27567       return !operator==( rhs );
27568     }
27569 #endif
27570 
27571 
27572 
27573   public:
27574     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
27575     const void* pNext = {};
27576     const char* pLabelName = {};
27577     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
27578 
27579   };
27580   static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" );
27581   static_assert( std::is_standard_layout<DebugUtilsLabelEXT>::value, "struct wrapper is not a standard layout!" );
27582 
27583   template <>
27584   struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
27585   {
27586     using Type = DebugUtilsLabelEXT;
27587   };
27588 
27589   struct DebugUtilsObjectNameInfoEXT
27590   {
27591     static const bool allowDuplicate = false;
27592     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
27593 
27594 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27595     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
27596     : objectType( objectType_ ), objectHandle( objectHandle_ ), pObjectName( pObjectName_ )
27597     {}
27598 
27599     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27600 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27601     DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27602     {
27603       *this = rhs;
27604     }
27605 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27606 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27607     DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27608     {
27609       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>( &rhs );
27610       return *this;
27611     }
27612 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27613     DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27614     {
27615       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsObjectNameInfoEXT ) );
27616       return *this;
27617     }
27618 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27619     DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27620     {
27621       pNext = pNext_;
27622       return *this;
27623     }
27624 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27625     DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
27626     {
27627       objectType = objectType_;
27628       return *this;
27629     }
27630 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27631     DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
27632     {
27633       objectHandle = objectHandle_;
27634       return *this;
27635     }
27636 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27637     DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
27638     {
27639       pObjectName = pObjectName_;
27640       return *this;
27641     }
27642 
27643 
operator VkDebugUtilsObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27644     operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27645     {
27646       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
27647     }
27648 
operator VkDebugUtilsObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27649     operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
27650     {
27651       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
27652     }
27653 
27654 
27655 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27656     auto operator<=>( DebugUtilsObjectNameInfoEXT const& ) const = default;
27657 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27658     bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27659     {
27660       return ( sType == rhs.sType )
27661           && ( pNext == rhs.pNext )
27662           && ( objectType == rhs.objectType )
27663           && ( objectHandle == rhs.objectHandle )
27664           && ( pObjectName == rhs.pObjectName );
27665     }
27666 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27667     bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27668     {
27669       return !operator==( rhs );
27670     }
27671 #endif
27672 
27673 
27674 
27675   public:
27676     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
27677     const void* pNext = {};
27678     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
27679     uint64_t objectHandle = {};
27680     const char* pObjectName = {};
27681 
27682   };
27683   static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" );
27684   static_assert( std::is_standard_layout<DebugUtilsObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
27685 
27686   template <>
27687   struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
27688   {
27689     using Type = DebugUtilsObjectNameInfoEXT;
27690   };
27691 
27692   struct DebugUtilsMessengerCallbackDataEXT
27693   {
27694     static const bool allowDuplicate = false;
27695     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
27696 
27697 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27698     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
27699     : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( queueLabelCount_ ), pQueueLabels( pQueueLabels_ ), cmdBufLabelCount( cmdBufLabelCount_ ), pCmdBufLabels( pCmdBufLabels_ ), objectCount( objectCount_ ), pObjects( pObjects_ )
27700     {}
27701 
27702     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27703 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27704     DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27705     {
27706       *this = rhs;
27707     }
27708 
27709 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27710     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_ = {} )
27711     : 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() )
27712     {}
27713 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27714 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27715 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27716     DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27717     {
27718       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>( &rhs );
27719       return *this;
27720     }
27721 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27722     DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27723     {
27724       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsMessengerCallbackDataEXT ) );
27725       return *this;
27726     }
27727 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27728     DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27729     {
27730       pNext = pNext_;
27731       return *this;
27732     }
27733 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27734     DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
27735     {
27736       flags = flags_;
27737       return *this;
27738     }
27739 
setPMessageIdNameVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27740     DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
27741     {
27742       pMessageIdName = pMessageIdName_;
27743       return *this;
27744     }
27745 
setMessageIdNumberVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27746     DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
27747     {
27748       messageIdNumber = messageIdNumber_;
27749       return *this;
27750     }
27751 
setPMessageVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27752     DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT
27753     {
27754       pMessage = pMessage_;
27755       return *this;
27756     }
27757 
setQueueLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27758     DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
27759     {
27760       queueLabelCount = queueLabelCount_;
27761       return *this;
27762     }
27763 
setPQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27764     DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
27765     {
27766       pQueueLabels = pQueueLabels_;
27767       return *this;
27768     }
27769 
27770 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27771     DebugUtilsMessengerCallbackDataEXT & setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_ ) VULKAN_HPP_NOEXCEPT
27772     {
27773       queueLabelCount = static_cast<uint32_t>( queueLabels_.size() );
27774       pQueueLabels = queueLabels_.data();
27775       return *this;
27776     }
27777 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27778 
setCmdBufLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27779     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
27780     {
27781       cmdBufLabelCount = cmdBufLabelCount_;
27782       return *this;
27783     }
27784 
setPCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27785     DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
27786     {
27787       pCmdBufLabels = pCmdBufLabels_;
27788       return *this;
27789     }
27790 
27791 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27792     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
27793     {
27794       cmdBufLabelCount = static_cast<uint32_t>( cmdBufLabels_.size() );
27795       pCmdBufLabels = cmdBufLabels_.data();
27796       return *this;
27797     }
27798 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27799 
setObjectCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27800     DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
27801     {
27802       objectCount = objectCount_;
27803       return *this;
27804     }
27805 
setPObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27806     DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT
27807     {
27808       pObjects = pObjects_;
27809       return *this;
27810     }
27811 
27812 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27813     DebugUtilsMessengerCallbackDataEXT & setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ ) VULKAN_HPP_NOEXCEPT
27814     {
27815       objectCount = static_cast<uint32_t>( objects_.size() );
27816       pObjects = objects_.data();
27817       return *this;
27818     }
27819 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27820 
27821 
operator VkDebugUtilsMessengerCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27822     operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
27823     {
27824       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
27825     }
27826 
operator VkDebugUtilsMessengerCallbackDataEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27827     operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
27828     {
27829       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
27830     }
27831 
27832 
27833 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27834     auto operator<=>( DebugUtilsMessengerCallbackDataEXT const& ) const = default;
27835 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27836     bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27837     {
27838       return ( sType == rhs.sType )
27839           && ( pNext == rhs.pNext )
27840           && ( flags == rhs.flags )
27841           && ( pMessageIdName == rhs.pMessageIdName )
27842           && ( messageIdNumber == rhs.messageIdNumber )
27843           && ( pMessage == rhs.pMessage )
27844           && ( queueLabelCount == rhs.queueLabelCount )
27845           && ( pQueueLabels == rhs.pQueueLabels )
27846           && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
27847           && ( pCmdBufLabels == rhs.pCmdBufLabels )
27848           && ( objectCount == rhs.objectCount )
27849           && ( pObjects == rhs.pObjects );
27850     }
27851 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27852     bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27853     {
27854       return !operator==( rhs );
27855     }
27856 #endif
27857 
27858 
27859 
27860   public:
27861     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
27862     const void* pNext = {};
27863     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
27864     const char* pMessageIdName = {};
27865     int32_t messageIdNumber = {};
27866     const char* pMessage = {};
27867     uint32_t queueLabelCount = {};
27868     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {};
27869     uint32_t cmdBufLabelCount = {};
27870     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {};
27871     uint32_t objectCount = {};
27872     const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {};
27873 
27874   };
27875   static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" );
27876   static_assert( std::is_standard_layout<DebugUtilsMessengerCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
27877 
27878   template <>
27879   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
27880   {
27881     using Type = DebugUtilsMessengerCallbackDataEXT;
27882   };
27883 
27884   struct DebugUtilsMessengerCreateInfoEXT
27885   {
27886     static const bool allowDuplicate = true;
27887     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
27888 
27889 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27890     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
27891     : flags( flags_ ), messageSeverity( messageSeverity_ ), messageType( messageType_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
27892     {}
27893 
27894     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27895 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27896     DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27897     {
27898       *this = rhs;
27899     }
27900 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27901 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27902     DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27903     {
27904       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>( &rhs );
27905       return *this;
27906     }
27907 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27908     DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27909     {
27910       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsMessengerCreateInfoEXT ) );
27911       return *this;
27912     }
27913 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27914     DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27915     {
27916       pNext = pNext_;
27917       return *this;
27918     }
27919 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27920     DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
27921     {
27922       flags = flags_;
27923       return *this;
27924     }
27925 
setMessageSeverityVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27926     DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
27927     {
27928       messageSeverity = messageSeverity_;
27929       return *this;
27930     }
27931 
setMessageTypeVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27932     DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
27933     {
27934       messageType = messageType_;
27935       return *this;
27936     }
27937 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27938     DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
27939     {
27940       pfnUserCallback = pfnUserCallback_;
27941       return *this;
27942     }
27943 
setPUserDataVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27944     DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
27945     {
27946       pUserData = pUserData_;
27947       return *this;
27948     }
27949 
27950 
operator VkDebugUtilsMessengerCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27951     operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27952     {
27953       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
27954     }
27955 
operator VkDebugUtilsMessengerCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27956     operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
27957     {
27958       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
27959     }
27960 
27961 
27962 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27963     auto operator<=>( DebugUtilsMessengerCreateInfoEXT const& ) const = default;
27964 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27965     bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27966     {
27967       return ( sType == rhs.sType )
27968           && ( pNext == rhs.pNext )
27969           && ( flags == rhs.flags )
27970           && ( messageSeverity == rhs.messageSeverity )
27971           && ( messageType == rhs.messageType )
27972           && ( pfnUserCallback == rhs.pfnUserCallback )
27973           && ( pUserData == rhs.pUserData );
27974     }
27975 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT27976     bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27977     {
27978       return !operator==( rhs );
27979     }
27980 #endif
27981 
27982 
27983 
27984   public:
27985     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
27986     const void* pNext = {};
27987     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
27988     VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
27989     VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
27990     PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
27991     void* pUserData = {};
27992 
27993   };
27994   static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" );
27995   static_assert( std::is_standard_layout<DebugUtilsMessengerCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
27996 
27997   template <>
27998   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
27999   {
28000     using Type = DebugUtilsMessengerCreateInfoEXT;
28001   };
28002 
28003   struct DebugUtilsObjectTagInfoEXT
28004   {
28005     static const bool allowDuplicate = false;
28006     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
28007 
28008 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28009     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
28010     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
28011     {}
28012 
28013     VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28014 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28015     DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28016     {
28017       *this = rhs;
28018     }
28019 
28020 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28021     template <typename T>
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28022     DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
28023     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
28024     {}
28025 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28026 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28027 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28028     DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28029     {
28030       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>( &rhs );
28031       return *this;
28032     }
28033 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28034     DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28035     {
28036       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsObjectTagInfoEXT ) );
28037       return *this;
28038     }
28039 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28040     DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28041     {
28042       pNext = pNext_;
28043       return *this;
28044     }
28045 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28046     DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
28047     {
28048       objectType = objectType_;
28049       return *this;
28050     }
28051 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28052     DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
28053     {
28054       objectHandle = objectHandle_;
28055       return *this;
28056     }
28057 
setTagNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28058     DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
28059     {
28060       tagName = tagName_;
28061       return *this;
28062     }
28063 
setTagSizeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28064     DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
28065     {
28066       tagSize = tagSize_;
28067       return *this;
28068     }
28069 
setPTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28070     DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
28071     {
28072       pTag = pTag_;
28073       return *this;
28074     }
28075 
28076 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28077     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28078     DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
28079     {
28080       tagSize = tag_.size() * sizeof(T);
28081       pTag = tag_.data();
28082       return *this;
28083     }
28084 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28085 
28086 
operator VkDebugUtilsObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28087     operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
28088     {
28089       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
28090     }
28091 
operator VkDebugUtilsObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28092     operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
28093     {
28094       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
28095     }
28096 
28097 
28098 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28099     auto operator<=>( DebugUtilsObjectTagInfoEXT const& ) const = default;
28100 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28101     bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28102     {
28103       return ( sType == rhs.sType )
28104           && ( pNext == rhs.pNext )
28105           && ( objectType == rhs.objectType )
28106           && ( objectHandle == rhs.objectHandle )
28107           && ( tagName == rhs.tagName )
28108           && ( tagSize == rhs.tagSize )
28109           && ( pTag == rhs.pTag );
28110     }
28111 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28112     bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28113     {
28114       return !operator==( rhs );
28115     }
28116 #endif
28117 
28118 
28119 
28120   public:
28121     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
28122     const void* pNext = {};
28123     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
28124     uint64_t objectHandle = {};
28125     uint64_t tagName = {};
28126     size_t tagSize = {};
28127     const void* pTag = {};
28128 
28129   };
28130   static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" );
28131   static_assert( std::is_standard_layout<DebugUtilsObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
28132 
28133   template <>
28134   struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
28135   {
28136     using Type = DebugUtilsObjectTagInfoEXT;
28137   };
28138 
28139   struct DedicatedAllocationBufferCreateInfoNV
28140   {
28141     static const bool allowDuplicate = false;
28142     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
28143 
28144 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28145     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
28146     : dedicatedAllocation( dedicatedAllocation_ )
28147     {}
28148 
28149     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28150 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28151     DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28152     {
28153       *this = rhs;
28154     }
28155 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28156 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28157     DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28158     {
28159       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>( &rhs );
28160       return *this;
28161     }
28162 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28163     DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28164     {
28165       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationBufferCreateInfoNV ) );
28166       return *this;
28167     }
28168 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28169     DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28170     {
28171       pNext = pNext_;
28172       return *this;
28173     }
28174 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28175     DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
28176     {
28177       dedicatedAllocation = dedicatedAllocation_;
28178       return *this;
28179     }
28180 
28181 
operator VkDedicatedAllocationBufferCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28182     operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28183     {
28184       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
28185     }
28186 
operator VkDedicatedAllocationBufferCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28187     operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
28188     {
28189       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
28190     }
28191 
28192 
28193 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28194     auto operator<=>( DedicatedAllocationBufferCreateInfoNV const& ) const = default;
28195 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28196     bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28197     {
28198       return ( sType == rhs.sType )
28199           && ( pNext == rhs.pNext )
28200           && ( dedicatedAllocation == rhs.dedicatedAllocation );
28201     }
28202 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28203     bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28204     {
28205       return !operator==( rhs );
28206     }
28207 #endif
28208 
28209 
28210 
28211   public:
28212     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
28213     const void* pNext = {};
28214     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
28215 
28216   };
28217   static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" );
28218   static_assert( std::is_standard_layout<DedicatedAllocationBufferCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
28219 
28220   template <>
28221   struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
28222   {
28223     using Type = DedicatedAllocationBufferCreateInfoNV;
28224   };
28225 
28226   struct DedicatedAllocationImageCreateInfoNV
28227   {
28228     static const bool allowDuplicate = false;
28229     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
28230 
28231 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28232     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
28233     : dedicatedAllocation( dedicatedAllocation_ )
28234     {}
28235 
28236     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28237 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28238     DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28239     {
28240       *this = rhs;
28241     }
28242 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28243 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28244     DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28245     {
28246       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>( &rhs );
28247       return *this;
28248     }
28249 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28250     DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28251     {
28252       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationImageCreateInfoNV ) );
28253       return *this;
28254     }
28255 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28256     DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28257     {
28258       pNext = pNext_;
28259       return *this;
28260     }
28261 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28262     DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
28263     {
28264       dedicatedAllocation = dedicatedAllocation_;
28265       return *this;
28266     }
28267 
28268 
operator VkDedicatedAllocationImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28269     operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28270     {
28271       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
28272     }
28273 
operator VkDedicatedAllocationImageCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28274     operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
28275     {
28276       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
28277     }
28278 
28279 
28280 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28281     auto operator<=>( DedicatedAllocationImageCreateInfoNV const& ) const = default;
28282 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28283     bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28284     {
28285       return ( sType == rhs.sType )
28286           && ( pNext == rhs.pNext )
28287           && ( dedicatedAllocation == rhs.dedicatedAllocation );
28288     }
28289 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28290     bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28291     {
28292       return !operator==( rhs );
28293     }
28294 #endif
28295 
28296 
28297 
28298   public:
28299     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
28300     const void* pNext = {};
28301     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
28302 
28303   };
28304   static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" );
28305   static_assert( std::is_standard_layout<DedicatedAllocationImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
28306 
28307   template <>
28308   struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
28309   {
28310     using Type = DedicatedAllocationImageCreateInfoNV;
28311   };
28312 
28313   struct DedicatedAllocationMemoryAllocateInfoNV
28314   {
28315     static const bool allowDuplicate = false;
28316     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
28317 
28318 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28319     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
28320     : image( image_ ), buffer( buffer_ )
28321     {}
28322 
28323     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28324 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28325     DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28326     {
28327       *this = rhs;
28328     }
28329 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28330 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28331     DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28332     {
28333       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs );
28334       return *this;
28335     }
28336 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28337     DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28338     {
28339       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationMemoryAllocateInfoNV ) );
28340       return *this;
28341     }
28342 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28343     DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28344     {
28345       pNext = pNext_;
28346       return *this;
28347     }
28348 
setImageVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28349     DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
28350     {
28351       image = image_;
28352       return *this;
28353     }
28354 
setBufferVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28355     DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28356     {
28357       buffer = buffer_;
28358       return *this;
28359     }
28360 
28361 
operator VkDedicatedAllocationMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28362     operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28363     {
28364       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
28365     }
28366 
operator VkDedicatedAllocationMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28367     operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
28368     {
28369       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
28370     }
28371 
28372 
28373 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28374     auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const& ) const = default;
28375 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28376     bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28377     {
28378       return ( sType == rhs.sType )
28379           && ( pNext == rhs.pNext )
28380           && ( image == rhs.image )
28381           && ( buffer == rhs.buffer );
28382     }
28383 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28384     bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28385     {
28386       return !operator==( rhs );
28387     }
28388 #endif
28389 
28390 
28391 
28392   public:
28393     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
28394     const void* pNext = {};
28395     VULKAN_HPP_NAMESPACE::Image image = {};
28396     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28397 
28398   };
28399   static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
28400   static_assert( std::is_standard_layout<DedicatedAllocationMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
28401 
28402   template <>
28403   struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
28404   {
28405     using Type = DedicatedAllocationMemoryAllocateInfoNV;
28406   };
28407 
28408 #ifdef VK_ENABLE_BETA_EXTENSIONS
28409   class DeferredOperationKHR
28410   {
28411   public:
28412     using CType = VkDeferredOperationKHR;
28413 
28414     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR;
28415     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
28416 
28417   public:
DeferredOperationKHR()28418     VULKAN_HPP_CONSTEXPR DeferredOperationKHR() VULKAN_HPP_NOEXCEPT
28419       : m_deferredOperationKHR(VK_NULL_HANDLE)
28420     {}
28421 
DeferredOperationKHR(std::nullptr_t)28422     VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28423       : m_deferredOperationKHR(VK_NULL_HANDLE)
28424     {}
28425 
DeferredOperationKHR(VkDeferredOperationKHR deferredOperationKHR)28426     VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT
28427       : m_deferredOperationKHR( deferredOperationKHR )
28428     {}
28429 
28430 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeferredOperationKHR deferredOperationKHR)28431     DeferredOperationKHR & operator=(VkDeferredOperationKHR deferredOperationKHR) VULKAN_HPP_NOEXCEPT
28432     {
28433       m_deferredOperationKHR = deferredOperationKHR;
28434       return *this;
28435     }
28436 #endif
28437 
operator =(std::nullptr_t)28438     DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28439     {
28440       m_deferredOperationKHR = VK_NULL_HANDLE;
28441       return *this;
28442     }
28443 
28444 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28445     auto operator<=>( DeferredOperationKHR const& ) const = default;
28446 #else
operator ==(DeferredOperationKHR const & rhs) const28447     bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28448     {
28449       return m_deferredOperationKHR == rhs.m_deferredOperationKHR;
28450     }
28451 
operator !=(DeferredOperationKHR const & rhs) const28452     bool operator!=(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28453     {
28454       return m_deferredOperationKHR != rhs.m_deferredOperationKHR;
28455     }
28456 
operator <(DeferredOperationKHR const & rhs) const28457     bool operator<(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28458     {
28459       return m_deferredOperationKHR < rhs.m_deferredOperationKHR;
28460     }
28461 #endif
28462 
operator VkDeferredOperationKHR() const28463     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT
28464     {
28465       return m_deferredOperationKHR;
28466     }
28467 
operator bool() const28468     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28469     {
28470       return m_deferredOperationKHR != VK_NULL_HANDLE;
28471     }
28472 
operator !() const28473     bool operator!() const VULKAN_HPP_NOEXCEPT
28474     {
28475       return m_deferredOperationKHR == VK_NULL_HANDLE;
28476     }
28477 
28478   private:
28479     VkDeferredOperationKHR m_deferredOperationKHR;
28480   };
28481   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" );
28482 
28483   template <>
28484   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeferredOperationKHR>
28485   {
28486     using type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
28487   };
28488 
28489   template <>
28490   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR>
28491   {
28492     using Type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
28493   };
28494 
28495 
28496 
28497   template <>
28498   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
28499   {
28500     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28501   };
28502 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28503 
28504 #ifdef VK_ENABLE_BETA_EXTENSIONS
28505   struct DeferredOperationInfoKHR
28506   {
28507     static const bool allowDuplicate = false;
28508     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeferredOperationInfoKHR;
28509 
28510 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28511     VULKAN_HPP_CONSTEXPR DeferredOperationInfoKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ = {}) VULKAN_HPP_NOEXCEPT
28512     : operationHandle( operationHandle_ )
28513     {}
28514 
28515     VULKAN_HPP_CONSTEXPR DeferredOperationInfoKHR( DeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28516 
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28517     DeferredOperationInfoKHR( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28518     {
28519       *this = rhs;
28520     }
28521 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28522 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28523     DeferredOperationInfoKHR & operator=( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28524     {
28525       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR const *>( &rhs );
28526       return *this;
28527     }
28528 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28529     DeferredOperationInfoKHR & operator=( DeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28530     {
28531       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeferredOperationInfoKHR ) );
28532       return *this;
28533     }
28534 
setPNextVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28535     DeferredOperationInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28536     {
28537       pNext = pNext_;
28538       return *this;
28539     }
28540 
setOperationHandleVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28541     DeferredOperationInfoKHR & setOperationHandle( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ ) VULKAN_HPP_NOEXCEPT
28542     {
28543       operationHandle = operationHandle_;
28544       return *this;
28545     }
28546 
28547 
operator VkDeferredOperationInfoKHR const&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28548     operator VkDeferredOperationInfoKHR const&() const VULKAN_HPP_NOEXCEPT
28549     {
28550       return *reinterpret_cast<const VkDeferredOperationInfoKHR*>( this );
28551     }
28552 
operator VkDeferredOperationInfoKHR&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28553     operator VkDeferredOperationInfoKHR &() VULKAN_HPP_NOEXCEPT
28554     {
28555       return *reinterpret_cast<VkDeferredOperationInfoKHR*>( this );
28556     }
28557 
28558 
28559 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28560     auto operator<=>( DeferredOperationInfoKHR const& ) const = default;
28561 #else
operator ==VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28562     bool operator==( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28563     {
28564       return ( sType == rhs.sType )
28565           && ( pNext == rhs.pNext )
28566           && ( operationHandle == rhs.operationHandle );
28567     }
28568 
operator !=VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28569     bool operator!=( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28570     {
28571       return !operator==( rhs );
28572     }
28573 #endif
28574 
28575 
28576 
28577   public:
28578     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeferredOperationInfoKHR;
28579     const void* pNext = {};
28580     VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle = {};
28581 
28582   };
28583   static_assert( sizeof( DeferredOperationInfoKHR ) == sizeof( VkDeferredOperationInfoKHR ), "struct and wrapper have different size!" );
28584   static_assert( std::is_standard_layout<DeferredOperationInfoKHR>::value, "struct wrapper is not a standard layout!" );
28585 
28586   template <>
28587   struct CppType<StructureType, StructureType::eDeferredOperationInfoKHR>
28588   {
28589     using Type = DeferredOperationInfoKHR;
28590   };
28591 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28592 
28593   struct DescriptorBufferInfo
28594   {
28595 
28596 
28597 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28598     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT
28599     : buffer( buffer_ ), offset( offset_ ), range( range_ )
28600     {}
28601 
28602     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28603 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28604     DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28605     {
28606       *this = rhs;
28607     }
28608 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28609 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28610     DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28611     {
28612       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>( &rhs );
28613       return *this;
28614     }
28615 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28616     DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28617     {
28618       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorBufferInfo ) );
28619       return *this;
28620     }
28621 
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28622     DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28623     {
28624       buffer = buffer_;
28625       return *this;
28626     }
28627 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28628     DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
28629     {
28630       offset = offset_;
28631       return *this;
28632     }
28633 
setRangeVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28634     DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
28635     {
28636       range = range_;
28637       return *this;
28638     }
28639 
28640 
operator VkDescriptorBufferInfo const&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28641     operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT
28642     {
28643       return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
28644     }
28645 
operator VkDescriptorBufferInfo&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28646     operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
28647     {
28648       return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
28649     }
28650 
28651 
28652 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28653     auto operator<=>( DescriptorBufferInfo const& ) const = default;
28654 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28655     bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28656     {
28657       return ( buffer == rhs.buffer )
28658           && ( offset == rhs.offset )
28659           && ( range == rhs.range );
28660     }
28661 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28662     bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28663     {
28664       return !operator==( rhs );
28665     }
28666 #endif
28667 
28668 
28669 
28670   public:
28671     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28672     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
28673     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
28674 
28675   };
28676   static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" );
28677   static_assert( std::is_standard_layout<DescriptorBufferInfo>::value, "struct wrapper is not a standard layout!" );
28678 
28679   class Sampler
28680   {
28681   public:
28682     using CType = VkSampler;
28683 
28684     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler;
28685     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
28686 
28687   public:
Sampler()28688     VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT
28689       : m_sampler(VK_NULL_HANDLE)
28690     {}
28691 
Sampler(std::nullptr_t)28692     VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28693       : m_sampler(VK_NULL_HANDLE)
28694     {}
28695 
Sampler(VkSampler sampler)28696     VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT
28697       : m_sampler( sampler )
28698     {}
28699 
28700 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSampler sampler)28701     Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT
28702     {
28703       m_sampler = sampler;
28704       return *this;
28705     }
28706 #endif
28707 
operator =(std::nullptr_t)28708     Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28709     {
28710       m_sampler = VK_NULL_HANDLE;
28711       return *this;
28712     }
28713 
28714 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28715     auto operator<=>( Sampler const& ) const = default;
28716 #else
operator ==(Sampler const & rhs) const28717     bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28718     {
28719       return m_sampler == rhs.m_sampler;
28720     }
28721 
operator !=(Sampler const & rhs) const28722     bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28723     {
28724       return m_sampler != rhs.m_sampler;
28725     }
28726 
operator <(Sampler const & rhs) const28727     bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28728     {
28729       return m_sampler < rhs.m_sampler;
28730     }
28731 #endif
28732 
operator VkSampler() const28733     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT
28734     {
28735       return m_sampler;
28736     }
28737 
operator bool() const28738     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28739     {
28740       return m_sampler != VK_NULL_HANDLE;
28741     }
28742 
operator !() const28743     bool operator!() const VULKAN_HPP_NOEXCEPT
28744     {
28745       return m_sampler == VK_NULL_HANDLE;
28746     }
28747 
28748   private:
28749     VkSampler m_sampler;
28750   };
28751   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
28752 
28753   template <>
28754   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSampler>
28755   {
28756     using type = VULKAN_HPP_NAMESPACE::Sampler;
28757   };
28758 
28759   template <>
28760   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSampler>
28761   {
28762     using Type = VULKAN_HPP_NAMESPACE::Sampler;
28763   };
28764 
28765 
28766   template <>
28767   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler>
28768   {
28769     using Type = VULKAN_HPP_NAMESPACE::Sampler;
28770   };
28771 
28772 
28773   template <>
28774   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Sampler>
28775   {
28776     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28777   };
28778 
28779   class ImageView
28780   {
28781   public:
28782     using CType = VkImageView;
28783 
28784     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
28785     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
28786 
28787   public:
ImageView()28788     VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT
28789       : m_imageView(VK_NULL_HANDLE)
28790     {}
28791 
ImageView(std::nullptr_t)28792     VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28793       : m_imageView(VK_NULL_HANDLE)
28794     {}
28795 
ImageView(VkImageView imageView)28796     VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT
28797       : m_imageView( imageView )
28798     {}
28799 
28800 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImageView imageView)28801     ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT
28802     {
28803       m_imageView = imageView;
28804       return *this;
28805     }
28806 #endif
28807 
operator =(std::nullptr_t)28808     ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28809     {
28810       m_imageView = VK_NULL_HANDLE;
28811       return *this;
28812     }
28813 
28814 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28815     auto operator<=>( ImageView const& ) const = default;
28816 #else
operator ==(ImageView const & rhs) const28817     bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
28818     {
28819       return m_imageView == rhs.m_imageView;
28820     }
28821 
operator !=(ImageView const & rhs) const28822     bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
28823     {
28824       return m_imageView != rhs.m_imageView;
28825     }
28826 
operator <(ImageView const & rhs) const28827     bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
28828     {
28829       return m_imageView < rhs.m_imageView;
28830     }
28831 #endif
28832 
operator VkImageView() const28833     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT
28834     {
28835       return m_imageView;
28836     }
28837 
operator bool() const28838     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28839     {
28840       return m_imageView != VK_NULL_HANDLE;
28841     }
28842 
operator !() const28843     bool operator!() const VULKAN_HPP_NOEXCEPT
28844     {
28845       return m_imageView == VK_NULL_HANDLE;
28846     }
28847 
28848   private:
28849     VkImageView m_imageView;
28850   };
28851   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
28852 
28853   template <>
28854   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImageView>
28855   {
28856     using type = VULKAN_HPP_NAMESPACE::ImageView;
28857   };
28858 
28859   template <>
28860   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImageView>
28861   {
28862     using Type = VULKAN_HPP_NAMESPACE::ImageView;
28863   };
28864 
28865 
28866   template <>
28867   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView>
28868   {
28869     using Type = VULKAN_HPP_NAMESPACE::ImageView;
28870   };
28871 
28872 
28873   template <>
28874   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ImageView>
28875   {
28876     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28877   };
28878 
28879   struct DescriptorImageInfo
28880   {
28881 
28882 
28883 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo28884     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
28885     : sampler( sampler_ ), imageView( imageView_ ), imageLayout( imageLayout_ )
28886     {}
28887 
28888     VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28889 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo28890     DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28891     {
28892       *this = rhs;
28893     }
28894 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28895 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo28896     DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28897     {
28898       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>( &rhs );
28899       return *this;
28900     }
28901 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo28902     DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28903     {
28904       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorImageInfo ) );
28905       return *this;
28906     }
28907 
setSamplerVULKAN_HPP_NAMESPACE::DescriptorImageInfo28908     DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
28909     {
28910       sampler = sampler_;
28911       return *this;
28912     }
28913 
setImageViewVULKAN_HPP_NAMESPACE::DescriptorImageInfo28914     DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
28915     {
28916       imageView = imageView_;
28917       return *this;
28918     }
28919 
setImageLayoutVULKAN_HPP_NAMESPACE::DescriptorImageInfo28920     DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
28921     {
28922       imageLayout = imageLayout_;
28923       return *this;
28924     }
28925 
28926 
operator VkDescriptorImageInfo const&VULKAN_HPP_NAMESPACE::DescriptorImageInfo28927     operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT
28928     {
28929       return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
28930     }
28931 
operator VkDescriptorImageInfo&VULKAN_HPP_NAMESPACE::DescriptorImageInfo28932     operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
28933     {
28934       return *reinterpret_cast<VkDescriptorImageInfo*>( this );
28935     }
28936 
28937 
28938 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28939     auto operator<=>( DescriptorImageInfo const& ) const = default;
28940 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorImageInfo28941     bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28942     {
28943       return ( sampler == rhs.sampler )
28944           && ( imageView == rhs.imageView )
28945           && ( imageLayout == rhs.imageLayout );
28946     }
28947 
operator !=VULKAN_HPP_NAMESPACE::DescriptorImageInfo28948     bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28949     {
28950       return !operator==( rhs );
28951     }
28952 #endif
28953 
28954 
28955 
28956   public:
28957     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
28958     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
28959     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
28960 
28961   };
28962   static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" );
28963   static_assert( std::is_standard_layout<DescriptorImageInfo>::value, "struct wrapper is not a standard layout!" );
28964 
28965   struct DescriptorPoolSize
28966   {
28967 
28968 
28969 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize28970     VULKAN_HPP_CONSTEXPR DescriptorPoolSize(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
28971     : type( type_ ), descriptorCount( descriptorCount_ )
28972     {}
28973 
28974     VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28975 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize28976     DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
28977     {
28978       *this = rhs;
28979     }
28980 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28981 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize28982     DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
28983     {
28984       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>( &rhs );
28985       return *this;
28986     }
28987 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize28988     DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
28989     {
28990       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolSize ) );
28991       return *this;
28992     }
28993 
setTypeVULKAN_HPP_NAMESPACE::DescriptorPoolSize28994     DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
28995     {
28996       type = type_;
28997       return *this;
28998     }
28999 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorPoolSize29000     DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
29001     {
29002       descriptorCount = descriptorCount_;
29003       return *this;
29004     }
29005 
29006 
operator VkDescriptorPoolSize const&VULKAN_HPP_NAMESPACE::DescriptorPoolSize29007     operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT
29008     {
29009       return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
29010     }
29011 
operator VkDescriptorPoolSize&VULKAN_HPP_NAMESPACE::DescriptorPoolSize29012     operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
29013     {
29014       return *reinterpret_cast<VkDescriptorPoolSize*>( this );
29015     }
29016 
29017 
29018 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29019     auto operator<=>( DescriptorPoolSize const& ) const = default;
29020 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolSize29021     bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
29022     {
29023       return ( type == rhs.type )
29024           && ( descriptorCount == rhs.descriptorCount );
29025     }
29026 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolSize29027     bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
29028     {
29029       return !operator==( rhs );
29030     }
29031 #endif
29032 
29033 
29034 
29035   public:
29036     VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
29037     uint32_t descriptorCount = {};
29038 
29039   };
29040   static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" );
29041   static_assert( std::is_standard_layout<DescriptorPoolSize>::value, "struct wrapper is not a standard layout!" );
29042 
29043   struct DescriptorPoolCreateInfo
29044   {
29045     static const bool allowDuplicate = false;
29046     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
29047 
29048 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29049     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, uint32_t maxSets_ = {}, uint32_t poolSizeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {}) VULKAN_HPP_NOEXCEPT
29050     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( poolSizeCount_ ), pPoolSizes( pPoolSizes_ )
29051     {}
29052 
29053     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29054 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29055     DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29056     {
29057       *this = rhs;
29058     }
29059 
29060 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29061     DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, uint32_t maxSets_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ )
29062     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast<uint32_t>( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() )
29063     {}
29064 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29065 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29066 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29067     DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29068     {
29069       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>( &rhs );
29070       return *this;
29071     }
29072 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29073     DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29074     {
29075       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolCreateInfo ) );
29076       return *this;
29077     }
29078 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29079     DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29080     {
29081       pNext = pNext_;
29082       return *this;
29083     }
29084 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29085     DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
29086     {
29087       flags = flags_;
29088       return *this;
29089     }
29090 
setMaxSetsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29091     DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
29092     {
29093       maxSets = maxSets_;
29094       return *this;
29095     }
29096 
setPoolSizeCountVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29097     DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
29098     {
29099       poolSizeCount = poolSizeCount_;
29100       return *this;
29101     }
29102 
setPPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29103     DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
29104     {
29105       pPoolSizes = pPoolSizes_;
29106       return *this;
29107     }
29108 
29109 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29110     DescriptorPoolCreateInfo & setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ ) VULKAN_HPP_NOEXCEPT
29111     {
29112       poolSizeCount = static_cast<uint32_t>( poolSizes_.size() );
29113       pPoolSizes = poolSizes_.data();
29114       return *this;
29115     }
29116 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29117 
29118 
operator VkDescriptorPoolCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29119     operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29120     {
29121       return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
29122     }
29123 
operator VkDescriptorPoolCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29124     operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
29125     {
29126       return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
29127     }
29128 
29129 
29130 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29131     auto operator<=>( DescriptorPoolCreateInfo const& ) const = default;
29132 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29133     bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29134     {
29135       return ( sType == rhs.sType )
29136           && ( pNext == rhs.pNext )
29137           && ( flags == rhs.flags )
29138           && ( maxSets == rhs.maxSets )
29139           && ( poolSizeCount == rhs.poolSizeCount )
29140           && ( pPoolSizes == rhs.pPoolSizes );
29141     }
29142 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29143     bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29144     {
29145       return !operator==( rhs );
29146     }
29147 #endif
29148 
29149 
29150 
29151   public:
29152     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
29153     const void* pNext = {};
29154     VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
29155     uint32_t maxSets = {};
29156     uint32_t poolSizeCount = {};
29157     const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {};
29158 
29159   };
29160   static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" );
29161   static_assert( std::is_standard_layout<DescriptorPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
29162 
29163   template <>
29164   struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
29165   {
29166     using Type = DescriptorPoolCreateInfo;
29167   };
29168 
29169   struct DescriptorPoolInlineUniformBlockCreateInfoEXT
29170   {
29171     static const bool allowDuplicate = false;
29172     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
29173 
29174 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29175     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT(uint32_t maxInlineUniformBlockBindings_ = {}) VULKAN_HPP_NOEXCEPT
29176     : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
29177     {}
29178 
29179     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29180 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29181     DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29182     {
29183       *this = rhs;
29184     }
29185 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29186 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29187     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29188     {
29189       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT const *>( &rhs );
29190       return *this;
29191     }
29192 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29193     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29194     {
29195       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) );
29196       return *this;
29197     }
29198 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29199     DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29200     {
29201       pNext = pNext_;
29202       return *this;
29203     }
29204 
setMaxInlineUniformBlockBindingsVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29205     DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
29206     {
29207       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
29208       return *this;
29209     }
29210 
29211 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29212     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
29213     {
29214       return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
29215     }
29216 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29217     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
29218     {
29219       return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
29220     }
29221 
29222 
29223 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29224     auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const& ) const = default;
29225 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29226     bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29227     {
29228       return ( sType == rhs.sType )
29229           && ( pNext == rhs.pNext )
29230           && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
29231     }
29232 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29233     bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29234     {
29235       return !operator==( rhs );
29236     }
29237 #endif
29238 
29239 
29240 
29241   public:
29242     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
29243     const void* pNext = {};
29244     uint32_t maxInlineUniformBlockBindings = {};
29245 
29246   };
29247   static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" );
29248   static_assert( std::is_standard_layout<DescriptorPoolInlineUniformBlockCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
29249 
29250   template <>
29251   struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT>
29252   {
29253     using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT;
29254   };
29255 
29256   class DescriptorPool
29257   {
29258   public:
29259     using CType = VkDescriptorPool;
29260 
29261     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool;
29262     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
29263 
29264   public:
DescriptorPool()29265     VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT
29266       : m_descriptorPool(VK_NULL_HANDLE)
29267     {}
29268 
DescriptorPool(std::nullptr_t)29269     VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29270       : m_descriptorPool(VK_NULL_HANDLE)
29271     {}
29272 
DescriptorPool(VkDescriptorPool descriptorPool)29273     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT
29274       : m_descriptorPool( descriptorPool )
29275     {}
29276 
29277 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorPool descriptorPool)29278     DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT
29279     {
29280       m_descriptorPool = descriptorPool;
29281       return *this;
29282     }
29283 #endif
29284 
operator =(std::nullptr_t)29285     DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29286     {
29287       m_descriptorPool = VK_NULL_HANDLE;
29288       return *this;
29289     }
29290 
29291 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29292     auto operator<=>( DescriptorPool const& ) const = default;
29293 #else
operator ==(DescriptorPool const & rhs) const29294     bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29295     {
29296       return m_descriptorPool == rhs.m_descriptorPool;
29297     }
29298 
operator !=(DescriptorPool const & rhs) const29299     bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29300     {
29301       return m_descriptorPool != rhs.m_descriptorPool;
29302     }
29303 
operator <(DescriptorPool const & rhs) const29304     bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29305     {
29306       return m_descriptorPool < rhs.m_descriptorPool;
29307     }
29308 #endif
29309 
operator VkDescriptorPool() const29310     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT
29311     {
29312       return m_descriptorPool;
29313     }
29314 
operator bool() const29315     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29316     {
29317       return m_descriptorPool != VK_NULL_HANDLE;
29318     }
29319 
operator !() const29320     bool operator!() const VULKAN_HPP_NOEXCEPT
29321     {
29322       return m_descriptorPool == VK_NULL_HANDLE;
29323     }
29324 
29325   private:
29326     VkDescriptorPool m_descriptorPool;
29327   };
29328   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
29329 
29330   template <>
29331   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorPool>
29332   {
29333     using type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29334   };
29335 
29336   template <>
29337   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool>
29338   {
29339     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29340   };
29341 
29342 
29343   template <>
29344   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool>
29345   {
29346     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29347   };
29348 
29349 
29350   template <>
29351   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorPool>
29352   {
29353     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29354   };
29355 
29356   class DescriptorSetLayout
29357   {
29358   public:
29359     using CType = VkDescriptorSetLayout;
29360 
29361     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout;
29362     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
29363 
29364   public:
DescriptorSetLayout()29365     VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT
29366       : m_descriptorSetLayout(VK_NULL_HANDLE)
29367     {}
29368 
DescriptorSetLayout(std::nullptr_t)29369     VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29370       : m_descriptorSetLayout(VK_NULL_HANDLE)
29371     {}
29372 
DescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout)29373     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT
29374       : m_descriptorSetLayout( descriptorSetLayout )
29375     {}
29376 
29377 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSetLayout descriptorSetLayout)29378     DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT
29379     {
29380       m_descriptorSetLayout = descriptorSetLayout;
29381       return *this;
29382     }
29383 #endif
29384 
operator =(std::nullptr_t)29385     DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29386     {
29387       m_descriptorSetLayout = VK_NULL_HANDLE;
29388       return *this;
29389     }
29390 
29391 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29392     auto operator<=>( DescriptorSetLayout const& ) const = default;
29393 #else
operator ==(DescriptorSetLayout const & rhs) const29394     bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29395     {
29396       return m_descriptorSetLayout == rhs.m_descriptorSetLayout;
29397     }
29398 
operator !=(DescriptorSetLayout const & rhs) const29399     bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29400     {
29401       return m_descriptorSetLayout != rhs.m_descriptorSetLayout;
29402     }
29403 
operator <(DescriptorSetLayout const & rhs) const29404     bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29405     {
29406       return m_descriptorSetLayout < rhs.m_descriptorSetLayout;
29407     }
29408 #endif
29409 
operator VkDescriptorSetLayout() const29410     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT
29411     {
29412       return m_descriptorSetLayout;
29413     }
29414 
operator bool() const29415     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29416     {
29417       return m_descriptorSetLayout != VK_NULL_HANDLE;
29418     }
29419 
operator !() const29420     bool operator!() const VULKAN_HPP_NOEXCEPT
29421     {
29422       return m_descriptorSetLayout == VK_NULL_HANDLE;
29423     }
29424 
29425   private:
29426     VkDescriptorSetLayout m_descriptorSetLayout;
29427   };
29428   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
29429 
29430   template <>
29431   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSetLayout>
29432   {
29433     using type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29434   };
29435 
29436   template <>
29437   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout>
29438   {
29439     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29440   };
29441 
29442 
29443   template <>
29444   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout>
29445   {
29446     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29447   };
29448 
29449 
29450   template <>
29451   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
29452   {
29453     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29454   };
29455 
29456   struct DescriptorSetAllocateInfo
29457   {
29458     static const bool allowDuplicate = false;
29459     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
29460 
29461 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29462     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, uint32_t descriptorSetCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}) VULKAN_HPP_NOEXCEPT
29463     : descriptorPool( descriptorPool_ ), descriptorSetCount( descriptorSetCount_ ), pSetLayouts( pSetLayouts_ )
29464     {}
29465 
29466     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29467 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29468     DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29469     {
29470       *this = rhs;
29471     }
29472 
29473 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29474     DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ )
29475     : descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
29476     {}
29477 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29478 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29479 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29480     DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29481     {
29482       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>( &rhs );
29483       return *this;
29484     }
29485 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29486     DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29487     {
29488       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetAllocateInfo ) );
29489       return *this;
29490     }
29491 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29492     DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29493     {
29494       pNext = pNext_;
29495       return *this;
29496     }
29497 
setDescriptorPoolVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29498     DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
29499     {
29500       descriptorPool = descriptorPool_;
29501       return *this;
29502     }
29503 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29504     DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
29505     {
29506       descriptorSetCount = descriptorSetCount_;
29507       return *this;
29508     }
29509 
setPSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29510     DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
29511     {
29512       pSetLayouts = pSetLayouts_;
29513       return *this;
29514     }
29515 
29516 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29517     DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
29518     {
29519       descriptorSetCount = static_cast<uint32_t>( setLayouts_.size() );
29520       pSetLayouts = setLayouts_.data();
29521       return *this;
29522     }
29523 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29524 
29525 
operator VkDescriptorSetAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29526     operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
29527     {
29528       return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
29529     }
29530 
operator VkDescriptorSetAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29531     operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
29532     {
29533       return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
29534     }
29535 
29536 
29537 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29538     auto operator<=>( DescriptorSetAllocateInfo const& ) const = default;
29539 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29540     bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29541     {
29542       return ( sType == rhs.sType )
29543           && ( pNext == rhs.pNext )
29544           && ( descriptorPool == rhs.descriptorPool )
29545           && ( descriptorSetCount == rhs.descriptorSetCount )
29546           && ( pSetLayouts == rhs.pSetLayouts );
29547     }
29548 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29549     bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29550     {
29551       return !operator==( rhs );
29552     }
29553 #endif
29554 
29555 
29556 
29557   public:
29558     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
29559     const void* pNext = {};
29560     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
29561     uint32_t descriptorSetCount = {};
29562     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
29563 
29564   };
29565   static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" );
29566   static_assert( std::is_standard_layout<DescriptorSetAllocateInfo>::value, "struct wrapper is not a standard layout!" );
29567 
29568   template <>
29569   struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
29570   {
29571     using Type = DescriptorSetAllocateInfo;
29572   };
29573 
29574   struct DescriptorSetLayoutBinding
29575   {
29576 
29577 
29578 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29579     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
29580     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( descriptorCount_ ), stageFlags( stageFlags_ ), pImmutableSamplers( pImmutableSamplers_ )
29581     {}
29582 
29583     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29584 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29585     DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29586     {
29587       *this = rhs;
29588     }
29589 
29590 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29591     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_ )
29592     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( static_cast<uint32_t>( immutableSamplers_.size() ) ), stageFlags( stageFlags_ ), pImmutableSamplers( immutableSamplers_.data() )
29593     {}
29594 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29595 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29596 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29597     DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29598     {
29599       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>( &rhs );
29600       return *this;
29601     }
29602 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29603     DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29604     {
29605       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutBinding ) );
29606       return *this;
29607     }
29608 
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29609     DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
29610     {
29611       binding = binding_;
29612       return *this;
29613     }
29614 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29615     DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
29616     {
29617       descriptorType = descriptorType_;
29618       return *this;
29619     }
29620 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29621     DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
29622     {
29623       descriptorCount = descriptorCount_;
29624       return *this;
29625     }
29626 
setStageFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29627     DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
29628     {
29629       stageFlags = stageFlags_;
29630       return *this;
29631     }
29632 
setPImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29633     DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
29634     {
29635       pImmutableSamplers = pImmutableSamplers_;
29636       return *this;
29637     }
29638 
29639 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29640     DescriptorSetLayoutBinding & setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT
29641     {
29642       descriptorCount = static_cast<uint32_t>( immutableSamplers_.size() );
29643       pImmutableSamplers = immutableSamplers_.data();
29644       return *this;
29645     }
29646 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29647 
29648 
operator VkDescriptorSetLayoutBinding const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29649     operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT
29650     {
29651       return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
29652     }
29653 
operator VkDescriptorSetLayoutBinding&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29654     operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
29655     {
29656       return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
29657     }
29658 
29659 
29660 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29661     auto operator<=>( DescriptorSetLayoutBinding const& ) const = default;
29662 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29663     bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
29664     {
29665       return ( binding == rhs.binding )
29666           && ( descriptorType == rhs.descriptorType )
29667           && ( descriptorCount == rhs.descriptorCount )
29668           && ( stageFlags == rhs.stageFlags )
29669           && ( pImmutableSamplers == rhs.pImmutableSamplers );
29670     }
29671 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29672     bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
29673     {
29674       return !operator==( rhs );
29675     }
29676 #endif
29677 
29678 
29679 
29680   public:
29681     uint32_t binding = {};
29682     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
29683     uint32_t descriptorCount = {};
29684     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
29685     const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {};
29686 
29687   };
29688   static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" );
29689   static_assert( std::is_standard_layout<DescriptorSetLayoutBinding>::value, "struct wrapper is not a standard layout!" );
29690 
29691   struct DescriptorSetLayoutBindingFlagsCreateInfo
29692   {
29693     static const bool allowDuplicate = false;
29694     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
29695 
29696 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29697     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo(uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {}) VULKAN_HPP_NOEXCEPT
29698     : bindingCount( bindingCount_ ), pBindingFlags( pBindingFlags_ )
29699     {}
29700 
29701     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29702 
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29703     DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29704     {
29705       *this = rhs;
29706     }
29707 
29708 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29709     DescriptorSetLayoutBindingFlagsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ )
29710     : bindingCount( static_cast<uint32_t>( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() )
29711     {}
29712 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29713 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29714 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29715     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29716     {
29717       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs );
29718       return *this;
29719     }
29720 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29721     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29722     {
29723       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) );
29724       return *this;
29725     }
29726 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29727     DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29728     {
29729       pNext = pNext_;
29730       return *this;
29731     }
29732 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29733     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
29734     {
29735       bindingCount = bindingCount_;
29736       return *this;
29737     }
29738 
setPBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29739     DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
29740     {
29741       pBindingFlags = pBindingFlags_;
29742       return *this;
29743     }
29744 
29745 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29746     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT
29747     {
29748       bindingCount = static_cast<uint32_t>( bindingFlags_.size() );
29749       pBindingFlags = bindingFlags_.data();
29750       return *this;
29751     }
29752 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29753 
29754 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29755     operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29756     {
29757       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
29758     }
29759 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29760     operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
29761     {
29762       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
29763     }
29764 
29765 
29766 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29767     auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const& ) const = default;
29768 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29769     bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29770     {
29771       return ( sType == rhs.sType )
29772           && ( pNext == rhs.pNext )
29773           && ( bindingCount == rhs.bindingCount )
29774           && ( pBindingFlags == rhs.pBindingFlags );
29775     }
29776 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29777     bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29778     {
29779       return !operator==( rhs );
29780     }
29781 #endif
29782 
29783 
29784 
29785   public:
29786     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
29787     const void* pNext = {};
29788     uint32_t bindingCount = {};
29789     const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {};
29790 
29791   };
29792   static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" );
29793   static_assert( std::is_standard_layout<DescriptorSetLayoutBindingFlagsCreateInfo>::value, "struct wrapper is not a standard layout!" );
29794 
29795   template <>
29796   struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
29797   {
29798     using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
29799   };
29800   using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
29801 
29802   struct DescriptorSetLayoutCreateInfo
29803   {
29804     static const bool allowDuplicate = false;
29805     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
29806 
29807 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29808     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {}) VULKAN_HPP_NOEXCEPT
29809     : flags( flags_ ), bindingCount( bindingCount_ ), pBindings( pBindings_ )
29810     {}
29811 
29812     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29813 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29814     DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29815     {
29816       *this = rhs;
29817     }
29818 
29819 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29820     DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ )
29821     : flags( flags_ ), bindingCount( static_cast<uint32_t>( bindings_.size() ) ), pBindings( bindings_.data() )
29822     {}
29823 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29824 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29825 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29826     DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29827     {
29828       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>( &rhs );
29829       return *this;
29830     }
29831 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29832     DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29833     {
29834       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutCreateInfo ) );
29835       return *this;
29836     }
29837 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29838     DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29839     {
29840       pNext = pNext_;
29841       return *this;
29842     }
29843 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29844     DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
29845     {
29846       flags = flags_;
29847       return *this;
29848     }
29849 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29850     DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
29851     {
29852       bindingCount = bindingCount_;
29853       return *this;
29854     }
29855 
setPBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29856     DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT
29857     {
29858       pBindings = pBindings_;
29859       return *this;
29860     }
29861 
29862 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29863     DescriptorSetLayoutCreateInfo & setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ ) VULKAN_HPP_NOEXCEPT
29864     {
29865       bindingCount = static_cast<uint32_t>( bindings_.size() );
29866       pBindings = bindings_.data();
29867       return *this;
29868     }
29869 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29870 
29871 
operator VkDescriptorSetLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29872     operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29873     {
29874       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
29875     }
29876 
operator VkDescriptorSetLayoutCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29877     operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
29878     {
29879       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
29880     }
29881 
29882 
29883 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29884     auto operator<=>( DescriptorSetLayoutCreateInfo const& ) const = default;
29885 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29886     bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29887     {
29888       return ( sType == rhs.sType )
29889           && ( pNext == rhs.pNext )
29890           && ( flags == rhs.flags )
29891           && ( bindingCount == rhs.bindingCount )
29892           && ( pBindings == rhs.pBindings );
29893     }
29894 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo29895     bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29896     {
29897       return !operator==( rhs );
29898     }
29899 #endif
29900 
29901 
29902 
29903   public:
29904     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
29905     const void* pNext = {};
29906     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
29907     uint32_t bindingCount = {};
29908     const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {};
29909 
29910   };
29911   static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" );
29912   static_assert( std::is_standard_layout<DescriptorSetLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
29913 
29914   template <>
29915   struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
29916   {
29917     using Type = DescriptorSetLayoutCreateInfo;
29918   };
29919 
29920   struct DescriptorSetLayoutSupport
29921   {
29922     static const bool allowDuplicate = false;
29923     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
29924 
29925 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29926     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport(VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}) VULKAN_HPP_NOEXCEPT
29927     : supported( supported_ )
29928     {}
29929 
29930     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29931 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29932     DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
29933     {
29934       *this = rhs;
29935     }
29936 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29937 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29938     DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
29939     {
29940       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>( &rhs );
29941       return *this;
29942     }
29943 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29944     DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
29945     {
29946       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutSupport ) );
29947       return *this;
29948     }
29949 
29950 
operator VkDescriptorSetLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29951     operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
29952     {
29953       return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
29954     }
29955 
operator VkDescriptorSetLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29956     operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
29957     {
29958       return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
29959     }
29960 
29961 
29962 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29963     auto operator<=>( DescriptorSetLayoutSupport const& ) const = default;
29964 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29965     bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
29966     {
29967       return ( sType == rhs.sType )
29968           && ( pNext == rhs.pNext )
29969           && ( supported == rhs.supported );
29970     }
29971 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport29972     bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
29973     {
29974       return !operator==( rhs );
29975     }
29976 #endif
29977 
29978 
29979 
29980   public:
29981     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
29982     void* pNext = {};
29983     VULKAN_HPP_NAMESPACE::Bool32 supported = {};
29984 
29985   };
29986   static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" );
29987   static_assert( std::is_standard_layout<DescriptorSetLayoutSupport>::value, "struct wrapper is not a standard layout!" );
29988 
29989   template <>
29990   struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
29991   {
29992     using Type = DescriptorSetLayoutSupport;
29993   };
29994   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
29995 
29996   struct DescriptorSetVariableDescriptorCountAllocateInfo
29997   {
29998     static const bool allowDuplicate = false;
29999     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
30000 
30001 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30002     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo(uint32_t descriptorSetCount_ = {}, const uint32_t* pDescriptorCounts_ = {}) VULKAN_HPP_NOEXCEPT
30003     : descriptorSetCount( descriptorSetCount_ ), pDescriptorCounts( pDescriptorCounts_ )
30004     {}
30005 
30006     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30007 
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30008     DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30009     {
30010       *this = rhs;
30011     }
30012 
30013 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30014     DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ )
30015     : descriptorSetCount( static_cast<uint32_t>( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() )
30016     {}
30017 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30018 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30019 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30020     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30021     {
30022       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs );
30023       return *this;
30024     }
30025 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30026     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30027     {
30028       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) );
30029       return *this;
30030     }
30031 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30032     DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30033     {
30034       pNext = pNext_;
30035       return *this;
30036     }
30037 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30038     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
30039     {
30040       descriptorSetCount = descriptorSetCount_;
30041       return *this;
30042     }
30043 
setPDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30044     DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
30045     {
30046       pDescriptorCounts = pDescriptorCounts_;
30047       return *this;
30048     }
30049 
30050 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30051     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
30052     {
30053       descriptorSetCount = static_cast<uint32_t>( descriptorCounts_.size() );
30054       pDescriptorCounts = descriptorCounts_.data();
30055       return *this;
30056     }
30057 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30058 
30059 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30060     operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
30061     {
30062       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
30063     }
30064 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30065     operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
30066     {
30067       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
30068     }
30069 
30070 
30071 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30072     auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const& ) const = default;
30073 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30074     bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30075     {
30076       return ( sType == rhs.sType )
30077           && ( pNext == rhs.pNext )
30078           && ( descriptorSetCount == rhs.descriptorSetCount )
30079           && ( pDescriptorCounts == rhs.pDescriptorCounts );
30080     }
30081 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30082     bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30083     {
30084       return !operator==( rhs );
30085     }
30086 #endif
30087 
30088 
30089 
30090   public:
30091     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
30092     const void* pNext = {};
30093     uint32_t descriptorSetCount = {};
30094     const uint32_t* pDescriptorCounts = {};
30095 
30096   };
30097   static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" );
30098   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountAllocateInfo>::value, "struct wrapper is not a standard layout!" );
30099 
30100   template <>
30101   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
30102   {
30103     using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
30104   };
30105   using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
30106 
30107   struct DescriptorSetVariableDescriptorCountLayoutSupport
30108   {
30109     static const bool allowDuplicate = false;
30110     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
30111 
30112 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30113     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport(uint32_t maxVariableDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
30114     : maxVariableDescriptorCount( maxVariableDescriptorCount_ )
30115     {}
30116 
30117     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30118 
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30119     DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30120     {
30121       *this = rhs;
30122     }
30123 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30124 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30125     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30126     {
30127       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs );
30128       return *this;
30129     }
30130 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30131     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30132     {
30133       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) );
30134       return *this;
30135     }
30136 
30137 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30138     operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
30139     {
30140       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
30141     }
30142 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30143     operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
30144     {
30145       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
30146     }
30147 
30148 
30149 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30150     auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const& ) const = default;
30151 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30152     bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30153     {
30154       return ( sType == rhs.sType )
30155           && ( pNext == rhs.pNext )
30156           && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
30157     }
30158 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30159     bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30160     {
30161       return !operator==( rhs );
30162     }
30163 #endif
30164 
30165 
30166 
30167   public:
30168     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
30169     void* pNext = {};
30170     uint32_t maxVariableDescriptorCount = {};
30171 
30172   };
30173   static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" );
30174   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountLayoutSupport>::value, "struct wrapper is not a standard layout!" );
30175 
30176   template <>
30177   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
30178   {
30179     using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
30180   };
30181   using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
30182 
30183   struct DescriptorUpdateTemplateEntry
30184   {
30185 
30186 
30187 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30188     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
30189     : dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), offset( offset_ ), stride( stride_ )
30190     {}
30191 
30192     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30193 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30194     DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30195     {
30196       *this = rhs;
30197     }
30198 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30199 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30200     DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30201     {
30202       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>( &rhs );
30203       return *this;
30204     }
30205 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30206     DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30207     {
30208       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorUpdateTemplateEntry ) );
30209       return *this;
30210     }
30211 
setDstBindingVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30212     DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
30213     {
30214       dstBinding = dstBinding_;
30215       return *this;
30216     }
30217 
setDstArrayElementVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30218     DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
30219     {
30220       dstArrayElement = dstArrayElement_;
30221       return *this;
30222     }
30223 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30224     DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
30225     {
30226       descriptorCount = descriptorCount_;
30227       return *this;
30228     }
30229 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30230     DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
30231     {
30232       descriptorType = descriptorType_;
30233       return *this;
30234     }
30235 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30236     DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
30237     {
30238       offset = offset_;
30239       return *this;
30240     }
30241 
setStrideVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30242     DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
30243     {
30244       stride = stride_;
30245       return *this;
30246     }
30247 
30248 
operator VkDescriptorUpdateTemplateEntry const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30249     operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT
30250     {
30251       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
30252     }
30253 
operator VkDescriptorUpdateTemplateEntry&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30254     operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
30255     {
30256       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
30257     }
30258 
30259 
30260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30261     auto operator<=>( DescriptorUpdateTemplateEntry const& ) const = default;
30262 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30263     bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
30264     {
30265       return ( dstBinding == rhs.dstBinding )
30266           && ( dstArrayElement == rhs.dstArrayElement )
30267           && ( descriptorCount == rhs.descriptorCount )
30268           && ( descriptorType == rhs.descriptorType )
30269           && ( offset == rhs.offset )
30270           && ( stride == rhs.stride );
30271     }
30272 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30273     bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
30274     {
30275       return !operator==( rhs );
30276     }
30277 #endif
30278 
30279 
30280 
30281   public:
30282     uint32_t dstBinding = {};
30283     uint32_t dstArrayElement = {};
30284     uint32_t descriptorCount = {};
30285     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
30286     size_t offset = {};
30287     size_t stride = {};
30288 
30289   };
30290   static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" );
30291   static_assert( std::is_standard_layout<DescriptorUpdateTemplateEntry>::value, "struct wrapper is not a standard layout!" );
30292   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
30293 
30294   struct DescriptorUpdateTemplateCreateInfo
30295   {
30296     static const bool allowDuplicate = false;
30297     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
30298 
30299 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30300     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
30301     : flags( flags_ ), descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ), pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
30302     {}
30303 
30304     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30305 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30306     DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30307     {
30308       *this = rhs;
30309     }
30310 
30311 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30312     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_ = {} )
30313     : flags( flags_ ), descriptorUpdateEntryCount( static_cast<uint32_t>( descriptorUpdateEntries_.size() ) ), pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
30314     {}
30315 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30316 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30317 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30318     DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30319     {
30320       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>( &rhs );
30321       return *this;
30322     }
30323 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30324     DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30325     {
30326       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorUpdateTemplateCreateInfo ) );
30327       return *this;
30328     }
30329 
setPNextVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30330     DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30331     {
30332       pNext = pNext_;
30333       return *this;
30334     }
30335 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30336     DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30337     {
30338       flags = flags_;
30339       return *this;
30340     }
30341 
setDescriptorUpdateEntryCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30342     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
30343     {
30344       descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
30345       return *this;
30346     }
30347 
setPDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30348     DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
30349     {
30350       pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
30351       return *this;
30352     }
30353 
30354 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30355     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
30356     {
30357       descriptorUpdateEntryCount = static_cast<uint32_t>( descriptorUpdateEntries_.size() );
30358       pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
30359       return *this;
30360     }
30361 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30362 
setTemplateTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30363     DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
30364     {
30365       templateType = templateType_;
30366       return *this;
30367     }
30368 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30369     DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
30370     {
30371       descriptorSetLayout = descriptorSetLayout_;
30372       return *this;
30373     }
30374 
setPipelineBindPointVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30375     DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
30376     {
30377       pipelineBindPoint = pipelineBindPoint_;
30378       return *this;
30379     }
30380 
setPipelineLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30381     DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
30382     {
30383       pipelineLayout = pipelineLayout_;
30384       return *this;
30385     }
30386 
setSetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30387     DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
30388     {
30389       set = set_;
30390       return *this;
30391     }
30392 
30393 
operator VkDescriptorUpdateTemplateCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30394     operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30395     {
30396       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
30397     }
30398 
operator VkDescriptorUpdateTemplateCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30399     operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
30400     {
30401       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
30402     }
30403 
30404 
30405 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30406     auto operator<=>( DescriptorUpdateTemplateCreateInfo const& ) const = default;
30407 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30408     bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30409     {
30410       return ( sType == rhs.sType )
30411           && ( pNext == rhs.pNext )
30412           && ( flags == rhs.flags )
30413           && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
30414           && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
30415           && ( templateType == rhs.templateType )
30416           && ( descriptorSetLayout == rhs.descriptorSetLayout )
30417           && ( pipelineBindPoint == rhs.pipelineBindPoint )
30418           && ( pipelineLayout == rhs.pipelineLayout )
30419           && ( set == rhs.set );
30420     }
30421 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30422     bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30423     {
30424       return !operator==( rhs );
30425     }
30426 #endif
30427 
30428 
30429 
30430   public:
30431     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
30432     const void* pNext = {};
30433     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
30434     uint32_t descriptorUpdateEntryCount = {};
30435     const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {};
30436     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
30437     VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
30438     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
30439     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
30440     uint32_t set = {};
30441 
30442   };
30443   static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" );
30444   static_assert( std::is_standard_layout<DescriptorUpdateTemplateCreateInfo>::value, "struct wrapper is not a standard layout!" );
30445 
30446   template <>
30447   struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
30448   {
30449     using Type = DescriptorUpdateTemplateCreateInfo;
30450   };
30451   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
30452 
30453   struct DeviceQueueCreateInfo
30454   {
30455     static const bool allowDuplicate = false;
30456     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
30457 
30458 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30459     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueCount_ = {}, const float* pQueuePriorities_ = {}) VULKAN_HPP_NOEXCEPT
30460     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( queueCount_ ), pQueuePriorities( pQueuePriorities_ )
30461     {}
30462 
30463     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30464 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30465     DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30466     {
30467       *this = rhs;
30468     }
30469 
30470 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30471     DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ )
30472     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( static_cast<uint32_t>( queuePriorities_.size() ) ), pQueuePriorities( queuePriorities_.data() )
30473     {}
30474 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30475 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30476 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30477     DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30478     {
30479       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>( &rhs );
30480       return *this;
30481     }
30482 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30483     DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30484     {
30485       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueCreateInfo ) );
30486       return *this;
30487     }
30488 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30489     DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30490     {
30491       pNext = pNext_;
30492       return *this;
30493     }
30494 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30495     DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30496     {
30497       flags = flags_;
30498       return *this;
30499     }
30500 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30501     DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
30502     {
30503       queueFamilyIndex = queueFamilyIndex_;
30504       return *this;
30505     }
30506 
setQueueCountVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30507     DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
30508     {
30509       queueCount = queueCount_;
30510       return *this;
30511     }
30512 
setPQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30513     DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
30514     {
30515       pQueuePriorities = pQueuePriorities_;
30516       return *this;
30517     }
30518 
30519 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30520     DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
30521     {
30522       queueCount = static_cast<uint32_t>( queuePriorities_.size() );
30523       pQueuePriorities = queuePriorities_.data();
30524       return *this;
30525     }
30526 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30527 
30528 
operator VkDeviceQueueCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30529     operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30530     {
30531       return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
30532     }
30533 
operator VkDeviceQueueCreateInfo&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30534     operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
30535     {
30536       return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
30537     }
30538 
30539 
30540 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30541     auto operator<=>( DeviceQueueCreateInfo const& ) const = default;
30542 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30543     bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30544     {
30545       return ( sType == rhs.sType )
30546           && ( pNext == rhs.pNext )
30547           && ( flags == rhs.flags )
30548           && ( queueFamilyIndex == rhs.queueFamilyIndex )
30549           && ( queueCount == rhs.queueCount )
30550           && ( pQueuePriorities == rhs.pQueuePriorities );
30551     }
30552 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30553     bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30554     {
30555       return !operator==( rhs );
30556     }
30557 #endif
30558 
30559 
30560 
30561   public:
30562     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
30563     const void* pNext = {};
30564     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
30565     uint32_t queueFamilyIndex = {};
30566     uint32_t queueCount = {};
30567     const float* pQueuePriorities = {};
30568 
30569   };
30570   static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" );
30571   static_assert( std::is_standard_layout<DeviceQueueCreateInfo>::value, "struct wrapper is not a standard layout!" );
30572 
30573   template <>
30574   struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
30575   {
30576     using Type = DeviceQueueCreateInfo;
30577   };
30578 
30579   struct PhysicalDeviceFeatures
30580   {
30581 
30582 
30583 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30584     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
30585     : 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_ )
30586     {}
30587 
30588     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30589 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30590     PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30591     {
30592       *this = rhs;
30593     }
30594 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30595 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30596     PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30597     {
30598       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>( &rhs );
30599       return *this;
30600     }
30601 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30602     PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30603     {
30604       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFeatures ) );
30605       return *this;
30606     }
30607 
setRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30608     PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
30609     {
30610       robustBufferAccess = robustBufferAccess_;
30611       return *this;
30612     }
30613 
setFullDrawIndexUint32VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30614     PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
30615     {
30616       fullDrawIndexUint32 = fullDrawIndexUint32_;
30617       return *this;
30618     }
30619 
setImageCubeArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30620     PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
30621     {
30622       imageCubeArray = imageCubeArray_;
30623       return *this;
30624     }
30625 
setIndependentBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30626     PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
30627     {
30628       independentBlend = independentBlend_;
30629       return *this;
30630     }
30631 
setGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30632     PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
30633     {
30634       geometryShader = geometryShader_;
30635       return *this;
30636     }
30637 
setTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30638     PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
30639     {
30640       tessellationShader = tessellationShader_;
30641       return *this;
30642     }
30643 
setSampleRateShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30644     PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
30645     {
30646       sampleRateShading = sampleRateShading_;
30647       return *this;
30648     }
30649 
setDualSrcBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30650     PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
30651     {
30652       dualSrcBlend = dualSrcBlend_;
30653       return *this;
30654     }
30655 
setLogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30656     PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
30657     {
30658       logicOp = logicOp_;
30659       return *this;
30660     }
30661 
setMultiDrawIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30662     PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
30663     {
30664       multiDrawIndirect = multiDrawIndirect_;
30665       return *this;
30666     }
30667 
setDrawIndirectFirstInstanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30668     PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
30669     {
30670       drawIndirectFirstInstance = drawIndirectFirstInstance_;
30671       return *this;
30672     }
30673 
setDepthClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30674     PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
30675     {
30676       depthClamp = depthClamp_;
30677       return *this;
30678     }
30679 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30680     PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
30681     {
30682       depthBiasClamp = depthBiasClamp_;
30683       return *this;
30684     }
30685 
setFillModeNonSolidVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30686     PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
30687     {
30688       fillModeNonSolid = fillModeNonSolid_;
30689       return *this;
30690     }
30691 
setDepthBoundsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30692     PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
30693     {
30694       depthBounds = depthBounds_;
30695       return *this;
30696     }
30697 
setWideLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30698     PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
30699     {
30700       wideLines = wideLines_;
30701       return *this;
30702     }
30703 
setLargePointsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30704     PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
30705     {
30706       largePoints = largePoints_;
30707       return *this;
30708     }
30709 
setAlphaToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30710     PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
30711     {
30712       alphaToOne = alphaToOne_;
30713       return *this;
30714     }
30715 
setMultiViewportVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30716     PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
30717     {
30718       multiViewport = multiViewport_;
30719       return *this;
30720     }
30721 
setSamplerAnisotropyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30722     PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
30723     {
30724       samplerAnisotropy = samplerAnisotropy_;
30725       return *this;
30726     }
30727 
setTextureCompressionETC2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30728     PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
30729     {
30730       textureCompressionETC2 = textureCompressionETC2_;
30731       return *this;
30732     }
30733 
setTextureCompressionASTC_LDRVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30734     PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
30735     {
30736       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
30737       return *this;
30738     }
30739 
setTextureCompressionBCVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30740     PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
30741     {
30742       textureCompressionBC = textureCompressionBC_;
30743       return *this;
30744     }
30745 
setOcclusionQueryPreciseVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30746     PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
30747     {
30748       occlusionQueryPrecise = occlusionQueryPrecise_;
30749       return *this;
30750     }
30751 
setPipelineStatisticsQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30752     PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
30753     {
30754       pipelineStatisticsQuery = pipelineStatisticsQuery_;
30755       return *this;
30756     }
30757 
setVertexPipelineStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30758     PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
30759     {
30760       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
30761       return *this;
30762     }
30763 
setFragmentStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30764     PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
30765     {
30766       fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
30767       return *this;
30768     }
30769 
setShaderTessellationAndGeometryPointSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30770     PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
30771     {
30772       shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
30773       return *this;
30774     }
30775 
setShaderImageGatherExtendedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30776     PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
30777     {
30778       shaderImageGatherExtended = shaderImageGatherExtended_;
30779       return *this;
30780     }
30781 
setShaderStorageImageExtendedFormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30782     PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
30783     {
30784       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
30785       return *this;
30786     }
30787 
setShaderStorageImageMultisampleVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30788     PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
30789     {
30790       shaderStorageImageMultisample = shaderStorageImageMultisample_;
30791       return *this;
30792     }
30793 
setShaderStorageImageReadWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30794     PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
30795     {
30796       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
30797       return *this;
30798     }
30799 
setShaderStorageImageWriteWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30800     PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
30801     {
30802       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
30803       return *this;
30804     }
30805 
setShaderUniformBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30806     PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30807     {
30808       shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
30809       return *this;
30810     }
30811 
setShaderSampledImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30812     PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30813     {
30814       shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
30815       return *this;
30816     }
30817 
setShaderStorageBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30818     PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30819     {
30820       shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
30821       return *this;
30822     }
30823 
setShaderStorageImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30824     PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
30825     {
30826       shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
30827       return *this;
30828     }
30829 
setShaderClipDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30830     PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
30831     {
30832       shaderClipDistance = shaderClipDistance_;
30833       return *this;
30834     }
30835 
setShaderCullDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30836     PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
30837     {
30838       shaderCullDistance = shaderCullDistance_;
30839       return *this;
30840     }
30841 
setShaderFloat64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30842     PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
30843     {
30844       shaderFloat64 = shaderFloat64_;
30845       return *this;
30846     }
30847 
setShaderInt64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30848     PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
30849     {
30850       shaderInt64 = shaderInt64_;
30851       return *this;
30852     }
30853 
setShaderInt16VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30854     PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
30855     {
30856       shaderInt16 = shaderInt16_;
30857       return *this;
30858     }
30859 
setShaderResourceResidencyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30860     PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
30861     {
30862       shaderResourceResidency = shaderResourceResidency_;
30863       return *this;
30864     }
30865 
setShaderResourceMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30866     PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
30867     {
30868       shaderResourceMinLod = shaderResourceMinLod_;
30869       return *this;
30870     }
30871 
setSparseBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30872     PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
30873     {
30874       sparseBinding = sparseBinding_;
30875       return *this;
30876     }
30877 
setSparseResidencyBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30878     PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
30879     {
30880       sparseResidencyBuffer = sparseResidencyBuffer_;
30881       return *this;
30882     }
30883 
setSparseResidencyImage2DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30884     PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
30885     {
30886       sparseResidencyImage2D = sparseResidencyImage2D_;
30887       return *this;
30888     }
30889 
setSparseResidencyImage3DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30890     PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
30891     {
30892       sparseResidencyImage3D = sparseResidencyImage3D_;
30893       return *this;
30894     }
30895 
setSparseResidency2SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30896     PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
30897     {
30898       sparseResidency2Samples = sparseResidency2Samples_;
30899       return *this;
30900     }
30901 
setSparseResidency4SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30902     PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
30903     {
30904       sparseResidency4Samples = sparseResidency4Samples_;
30905       return *this;
30906     }
30907 
setSparseResidency8SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30908     PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
30909     {
30910       sparseResidency8Samples = sparseResidency8Samples_;
30911       return *this;
30912     }
30913 
setSparseResidency16SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30914     PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
30915     {
30916       sparseResidency16Samples = sparseResidency16Samples_;
30917       return *this;
30918     }
30919 
setSparseResidencyAliasedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30920     PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
30921     {
30922       sparseResidencyAliased = sparseResidencyAliased_;
30923       return *this;
30924     }
30925 
setVariableMultisampleRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30926     PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
30927     {
30928       variableMultisampleRate = variableMultisampleRate_;
30929       return *this;
30930     }
30931 
setInheritedQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30932     PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
30933     {
30934       inheritedQueries = inheritedQueries_;
30935       return *this;
30936     }
30937 
30938 
operator VkPhysicalDeviceFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30939     operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT
30940     {
30941       return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
30942     }
30943 
operator VkPhysicalDeviceFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30944     operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
30945     {
30946       return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
30947     }
30948 
30949 
30950 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30951     auto operator<=>( PhysicalDeviceFeatures const& ) const = default;
30952 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30953     bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
30954     {
30955       return ( robustBufferAccess == rhs.robustBufferAccess )
30956           && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
30957           && ( imageCubeArray == rhs.imageCubeArray )
30958           && ( independentBlend == rhs.independentBlend )
30959           && ( geometryShader == rhs.geometryShader )
30960           && ( tessellationShader == rhs.tessellationShader )
30961           && ( sampleRateShading == rhs.sampleRateShading )
30962           && ( dualSrcBlend == rhs.dualSrcBlend )
30963           && ( logicOp == rhs.logicOp )
30964           && ( multiDrawIndirect == rhs.multiDrawIndirect )
30965           && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
30966           && ( depthClamp == rhs.depthClamp )
30967           && ( depthBiasClamp == rhs.depthBiasClamp )
30968           && ( fillModeNonSolid == rhs.fillModeNonSolid )
30969           && ( depthBounds == rhs.depthBounds )
30970           && ( wideLines == rhs.wideLines )
30971           && ( largePoints == rhs.largePoints )
30972           && ( alphaToOne == rhs.alphaToOne )
30973           && ( multiViewport == rhs.multiViewport )
30974           && ( samplerAnisotropy == rhs.samplerAnisotropy )
30975           && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
30976           && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
30977           && ( textureCompressionBC == rhs.textureCompressionBC )
30978           && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
30979           && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
30980           && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
30981           && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
30982           && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
30983           && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
30984           && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
30985           && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
30986           && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
30987           && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
30988           && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
30989           && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
30990           && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
30991           && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
30992           && ( shaderClipDistance == rhs.shaderClipDistance )
30993           && ( shaderCullDistance == rhs.shaderCullDistance )
30994           && ( shaderFloat64 == rhs.shaderFloat64 )
30995           && ( shaderInt64 == rhs.shaderInt64 )
30996           && ( shaderInt16 == rhs.shaderInt16 )
30997           && ( shaderResourceResidency == rhs.shaderResourceResidency )
30998           && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
30999           && ( sparseBinding == rhs.sparseBinding )
31000           && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
31001           && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
31002           && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
31003           && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
31004           && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
31005           && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
31006           && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
31007           && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
31008           && ( variableMultisampleRate == rhs.variableMultisampleRate )
31009           && ( inheritedQueries == rhs.inheritedQueries );
31010     }
31011 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31012     bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
31013     {
31014       return !operator==( rhs );
31015     }
31016 #endif
31017 
31018 
31019 
31020   public:
31021     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
31022     VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
31023     VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
31024     VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
31025     VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
31026     VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
31027     VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
31028     VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
31029     VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
31030     VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
31031     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
31032     VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
31033     VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
31034     VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
31035     VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
31036     VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
31037     VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
31038     VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
31039     VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
31040     VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
31041     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
31042     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
31043     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
31044     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
31045     VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
31046     VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
31047     VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
31048     VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
31049     VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
31050     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
31051     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
31052     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
31053     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
31054     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
31055     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
31056     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
31057     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
31058     VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
31059     VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
31060     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
31061     VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
31062     VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
31063     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
31064     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
31065     VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
31066     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
31067     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
31068     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
31069     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
31070     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
31071     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
31072     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
31073     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
31074     VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
31075     VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
31076 
31077   };
31078   static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" );
31079   static_assert( std::is_standard_layout<PhysicalDeviceFeatures>::value, "struct wrapper is not a standard layout!" );
31080 
31081   struct DeviceCreateInfo
31082   {
31083     static const bool allowDuplicate = false;
31084     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
31085 
31086 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31087     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
31088     : flags( flags_ ), queueCreateInfoCount( queueCreateInfoCount_ ), pQueueCreateInfos( pQueueCreateInfos_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ), pEnabledFeatures( pEnabledFeatures_ )
31089     {}
31090 
31091     VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31092 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31093     DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31094     {
31095       *this = rhs;
31096     }
31097 
31098 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31099     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_ = {} )
31100     : 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_ )
31101     {}
31102 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31103 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31104 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo31105     DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31106     {
31107       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>( &rhs );
31108       return *this;
31109     }
31110 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo31111     DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31112     {
31113       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceCreateInfo ) );
31114       return *this;
31115     }
31116 
setPNextVULKAN_HPP_NAMESPACE::DeviceCreateInfo31117     DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31118     {
31119       pNext = pNext_;
31120       return *this;
31121     }
31122 
setFlagsVULKAN_HPP_NAMESPACE::DeviceCreateInfo31123     DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
31124     {
31125       flags = flags_;
31126       return *this;
31127     }
31128 
setQueueCreateInfoCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31129     DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
31130     {
31131       queueCreateInfoCount = queueCreateInfoCount_;
31132       return *this;
31133     }
31134 
setPQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo31135     DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
31136     {
31137       pQueueCreateInfos = pQueueCreateInfos_;
31138       return *this;
31139     }
31140 
31141 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo31142     DeviceCreateInfo & setQueueCreateInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
31143     {
31144       queueCreateInfoCount = static_cast<uint32_t>( queueCreateInfos_.size() );
31145       pQueueCreateInfos = queueCreateInfos_.data();
31146       return *this;
31147     }
31148 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31149 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31150     DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
31151     {
31152       enabledLayerCount = enabledLayerCount_;
31153       return *this;
31154     }
31155 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31156     DeviceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
31157     {
31158       ppEnabledLayerNames = ppEnabledLayerNames_;
31159       return *this;
31160     }
31161 
31162 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31163     DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
31164     {
31165       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
31166       ppEnabledLayerNames = pEnabledLayerNames_.data();
31167       return *this;
31168     }
31169 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31170 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31171     DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
31172     {
31173       enabledExtensionCount = enabledExtensionCount_;
31174       return *this;
31175     }
31176 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31177     DeviceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
31178     {
31179       ppEnabledExtensionNames = ppEnabledExtensionNames_;
31180       return *this;
31181     }
31182 
31183 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31184     DeviceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
31185     {
31186       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
31187       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
31188       return *this;
31189     }
31190 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31191 
setPEnabledFeaturesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31192     DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
31193     {
31194       pEnabledFeatures = pEnabledFeatures_;
31195       return *this;
31196     }
31197 
31198 
operator VkDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceCreateInfo31199     operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
31200     {
31201       return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
31202     }
31203 
operator VkDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceCreateInfo31204     operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
31205     {
31206       return *reinterpret_cast<VkDeviceCreateInfo*>( this );
31207     }
31208 
31209 
31210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31211     auto operator<=>( DeviceCreateInfo const& ) const = default;
31212 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceCreateInfo31213     bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31214     {
31215       return ( sType == rhs.sType )
31216           && ( pNext == rhs.pNext )
31217           && ( flags == rhs.flags )
31218           && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
31219           && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
31220           && ( enabledLayerCount == rhs.enabledLayerCount )
31221           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
31222           && ( enabledExtensionCount == rhs.enabledExtensionCount )
31223           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames )
31224           && ( pEnabledFeatures == rhs.pEnabledFeatures );
31225     }
31226 
operator !=VULKAN_HPP_NAMESPACE::DeviceCreateInfo31227     bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31228     {
31229       return !operator==( rhs );
31230     }
31231 #endif
31232 
31233 
31234 
31235   public:
31236     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
31237     const void* pNext = {};
31238     VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
31239     uint32_t queueCreateInfoCount = {};
31240     const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {};
31241     uint32_t enabledLayerCount = {};
31242     const char* const * ppEnabledLayerNames = {};
31243     uint32_t enabledExtensionCount = {};
31244     const char* const * ppEnabledExtensionNames = {};
31245     const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {};
31246 
31247   };
31248   static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
31249   static_assert( std::is_standard_layout<DeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
31250 
31251   template <>
31252   struct CppType<StructureType, StructureType::eDeviceCreateInfo>
31253   {
31254     using Type = DeviceCreateInfo;
31255   };
31256 
31257   struct DeviceDeviceMemoryReportCreateInfoEXT
31258   {
31259     static const bool allowDuplicate = true;
31260     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
31261 
31262 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31263     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
31264     : flags( flags_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
31265     {}
31266 
31267     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31268 
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31269     DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31270     {
31271       *this = rhs;
31272     }
31273 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31274 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31275     DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31276     {
31277       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs );
31278       return *this;
31279     }
31280 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31281     DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31282     {
31283       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) );
31284       return *this;
31285     }
31286 
setPNextVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31287     DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31288     {
31289       pNext = pNext_;
31290       return *this;
31291     }
31292 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31293     DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
31294     {
31295       flags = flags_;
31296       return *this;
31297     }
31298 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31299     DeviceDeviceMemoryReportCreateInfoEXT & setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
31300     {
31301       pfnUserCallback = pfnUserCallback_;
31302       return *this;
31303     }
31304 
setPUserDataVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31305     DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
31306     {
31307       pUserData = pUserData_;
31308       return *this;
31309     }
31310 
31311 
operator VkDeviceDeviceMemoryReportCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31312     operator VkDeviceDeviceMemoryReportCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31313     {
31314       return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
31315     }
31316 
operator VkDeviceDeviceMemoryReportCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31317     operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
31318     {
31319       return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
31320     }
31321 
31322 
31323 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31324     auto operator<=>( DeviceDeviceMemoryReportCreateInfoEXT const& ) const = default;
31325 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31326     bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31327     {
31328       return ( sType == rhs.sType )
31329           && ( pNext == rhs.pNext )
31330           && ( flags == rhs.flags )
31331           && ( pfnUserCallback == rhs.pfnUserCallback )
31332           && ( pUserData == rhs.pUserData );
31333     }
31334 
operator !=VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31335     bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31336     {
31337       return !operator==( rhs );
31338     }
31339 #endif
31340 
31341 
31342 
31343   public:
31344     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
31345     const void* pNext = {};
31346     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
31347     PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {};
31348     void* pUserData = {};
31349 
31350   };
31351   static_assert( sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) == sizeof( VkDeviceDeviceMemoryReportCreateInfoEXT ), "struct and wrapper have different size!" );
31352   static_assert( std::is_standard_layout<DeviceDeviceMemoryReportCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
31353 
31354   template <>
31355   struct CppType<StructureType, StructureType::eDeviceDeviceMemoryReportCreateInfoEXT>
31356   {
31357     using Type = DeviceDeviceMemoryReportCreateInfoEXT;
31358   };
31359 
31360   struct DeviceDiagnosticsConfigCreateInfoNV
31361   {
31362     static const bool allowDuplicate = false;
31363     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
31364 
31365 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31366     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {}) VULKAN_HPP_NOEXCEPT
31367     : flags( flags_ )
31368     {}
31369 
31370     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31371 
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31372     DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31373     {
31374       *this = rhs;
31375     }
31376 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31377 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31378     DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31379     {
31380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs );
31381       return *this;
31382     }
31383 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31384     DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31385     {
31386       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceDiagnosticsConfigCreateInfoNV ) );
31387       return *this;
31388     }
31389 
setPNextVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31390     DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31391     {
31392       pNext = pNext_;
31393       return *this;
31394     }
31395 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31396     DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
31397     {
31398       flags = flags_;
31399       return *this;
31400     }
31401 
31402 
operator VkDeviceDiagnosticsConfigCreateInfoNV const&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31403     operator VkDeviceDiagnosticsConfigCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
31404     {
31405       return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
31406     }
31407 
operator VkDeviceDiagnosticsConfigCreateInfoNV&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31408     operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
31409     {
31410       return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
31411     }
31412 
31413 
31414 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31415     auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const& ) const = default;
31416 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31417     bool operator==( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
31418     {
31419       return ( sType == rhs.sType )
31420           && ( pNext == rhs.pNext )
31421           && ( flags == rhs.flags );
31422     }
31423 
operator !=VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31424     bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
31425     {
31426       return !operator==( rhs );
31427     }
31428 #endif
31429 
31430 
31431 
31432   public:
31433     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
31434     const void* pNext = {};
31435     VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
31436 
31437   };
31438   static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), "struct and wrapper have different size!" );
31439   static_assert( std::is_standard_layout<DeviceDiagnosticsConfigCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
31440 
31441   template <>
31442   struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
31443   {
31444     using Type = DeviceDiagnosticsConfigCreateInfoNV;
31445   };
31446 
31447   struct DeviceEventInfoEXT
31448   {
31449     static const bool allowDuplicate = false;
31450     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
31451 
31452 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31453     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT(VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug) VULKAN_HPP_NOEXCEPT
31454     : deviceEvent( deviceEvent_ )
31455     {}
31456 
31457     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31458 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31459     DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31460     {
31461       *this = rhs;
31462     }
31463 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31464 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31465     DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31466     {
31467       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>( &rhs );
31468       return *this;
31469     }
31470 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31471     DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31472     {
31473       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceEventInfoEXT ) );
31474       return *this;
31475     }
31476 
setPNextVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31477     DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31478     {
31479       pNext = pNext_;
31480       return *this;
31481     }
31482 
setDeviceEventVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31483     DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
31484     {
31485       deviceEvent = deviceEvent_;
31486       return *this;
31487     }
31488 
31489 
operator VkDeviceEventInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31490     operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31491     {
31492       return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
31493     }
31494 
operator VkDeviceEventInfoEXT&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31495     operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
31496     {
31497       return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
31498     }
31499 
31500 
31501 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31502     auto operator<=>( DeviceEventInfoEXT const& ) const = default;
31503 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31504     bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31505     {
31506       return ( sType == rhs.sType )
31507           && ( pNext == rhs.pNext )
31508           && ( deviceEvent == rhs.deviceEvent );
31509     }
31510 
operator !=VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31511     bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31512     {
31513       return !operator==( rhs );
31514     }
31515 #endif
31516 
31517 
31518 
31519   public:
31520     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
31521     const void* pNext = {};
31522     VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
31523 
31524   };
31525   static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" );
31526   static_assert( std::is_standard_layout<DeviceEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
31527 
31528   template <>
31529   struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
31530   {
31531     using Type = DeviceEventInfoEXT;
31532   };
31533 
31534   struct DeviceGroupBindSparseInfo
31535   {
31536     static const bool allowDuplicate = false;
31537     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
31538 
31539 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31540     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo(uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}) VULKAN_HPP_NOEXCEPT
31541     : resourceDeviceIndex( resourceDeviceIndex_ ), memoryDeviceIndex( memoryDeviceIndex_ )
31542     {}
31543 
31544     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31545 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31546     DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31547     {
31548       *this = rhs;
31549     }
31550 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31551 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31552     DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31553     {
31554       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>( &rhs );
31555       return *this;
31556     }
31557 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31558     DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31559     {
31560       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupBindSparseInfo ) );
31561       return *this;
31562     }
31563 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31564     DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31565     {
31566       pNext = pNext_;
31567       return *this;
31568     }
31569 
setResourceDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31570     DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
31571     {
31572       resourceDeviceIndex = resourceDeviceIndex_;
31573       return *this;
31574     }
31575 
setMemoryDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31576     DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
31577     {
31578       memoryDeviceIndex = memoryDeviceIndex_;
31579       return *this;
31580     }
31581 
31582 
operator VkDeviceGroupBindSparseInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31583     operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
31584     {
31585       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
31586     }
31587 
operator VkDeviceGroupBindSparseInfo&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31588     operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
31589     {
31590       return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
31591     }
31592 
31593 
31594 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31595     auto operator<=>( DeviceGroupBindSparseInfo const& ) const = default;
31596 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31597     bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31598     {
31599       return ( sType == rhs.sType )
31600           && ( pNext == rhs.pNext )
31601           && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
31602           && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
31603     }
31604 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31605     bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31606     {
31607       return !operator==( rhs );
31608     }
31609 #endif
31610 
31611 
31612 
31613   public:
31614     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
31615     const void* pNext = {};
31616     uint32_t resourceDeviceIndex = {};
31617     uint32_t memoryDeviceIndex = {};
31618 
31619   };
31620   static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" );
31621   static_assert( std::is_standard_layout<DeviceGroupBindSparseInfo>::value, "struct wrapper is not a standard layout!" );
31622 
31623   template <>
31624   struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
31625   {
31626     using Type = DeviceGroupBindSparseInfo;
31627   };
31628   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
31629 
31630   struct DeviceGroupCommandBufferBeginInfo
31631   {
31632     static const bool allowDuplicate = false;
31633     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
31634 
31635 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31636     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo(uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
31637     : deviceMask( deviceMask_ )
31638     {}
31639 
31640     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31641 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31642     DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31643     {
31644       *this = rhs;
31645     }
31646 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31647 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31648     DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31649     {
31650       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>( &rhs );
31651       return *this;
31652     }
31653 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31654     DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31655     {
31656       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupCommandBufferBeginInfo ) );
31657       return *this;
31658     }
31659 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31660     DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31661     {
31662       pNext = pNext_;
31663       return *this;
31664     }
31665 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31666     DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
31667     {
31668       deviceMask = deviceMask_;
31669       return *this;
31670     }
31671 
31672 
operator VkDeviceGroupCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31673     operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
31674     {
31675       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
31676     }
31677 
operator VkDeviceGroupCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31678     operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
31679     {
31680       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
31681     }
31682 
31683 
31684 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31685     auto operator<=>( DeviceGroupCommandBufferBeginInfo const& ) const = default;
31686 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31687     bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31688     {
31689       return ( sType == rhs.sType )
31690           && ( pNext == rhs.pNext )
31691           && ( deviceMask == rhs.deviceMask );
31692     }
31693 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31694     bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31695     {
31696       return !operator==( rhs );
31697     }
31698 #endif
31699 
31700 
31701 
31702   public:
31703     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
31704     const void* pNext = {};
31705     uint32_t deviceMask = {};
31706 
31707   };
31708   static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" );
31709   static_assert( std::is_standard_layout<DeviceGroupCommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
31710 
31711   template <>
31712   struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
31713   {
31714     using Type = DeviceGroupCommandBufferBeginInfo;
31715   };
31716   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
31717 
31718   class DisplayKHR
31719   {
31720   public:
31721     using CType = VkDisplayKHR;
31722 
31723     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR;
31724     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
31725 
31726   public:
DisplayKHR()31727     VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT
31728       : m_displayKHR(VK_NULL_HANDLE)
31729     {}
31730 
DisplayKHR(std::nullptr_t)31731     VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31732       : m_displayKHR(VK_NULL_HANDLE)
31733     {}
31734 
DisplayKHR(VkDisplayKHR displayKHR)31735     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT
31736       : m_displayKHR( displayKHR )
31737     {}
31738 
31739 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayKHR displayKHR)31740     DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT
31741     {
31742       m_displayKHR = displayKHR;
31743       return *this;
31744     }
31745 #endif
31746 
operator =(std::nullptr_t)31747     DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31748     {
31749       m_displayKHR = VK_NULL_HANDLE;
31750       return *this;
31751     }
31752 
31753 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31754     auto operator<=>( DisplayKHR const& ) const = default;
31755 #else
operator ==(DisplayKHR const & rhs) const31756     bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31757     {
31758       return m_displayKHR == rhs.m_displayKHR;
31759     }
31760 
operator !=(DisplayKHR const & rhs) const31761     bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31762     {
31763       return m_displayKHR != rhs.m_displayKHR;
31764     }
31765 
operator <(DisplayKHR const & rhs) const31766     bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31767     {
31768       return m_displayKHR < rhs.m_displayKHR;
31769     }
31770 #endif
31771 
operator VkDisplayKHR() const31772     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT
31773     {
31774       return m_displayKHR;
31775     }
31776 
operator bool() const31777     explicit operator bool() const VULKAN_HPP_NOEXCEPT
31778     {
31779       return m_displayKHR != VK_NULL_HANDLE;
31780     }
31781 
operator !() const31782     bool operator!() const VULKAN_HPP_NOEXCEPT
31783     {
31784       return m_displayKHR == VK_NULL_HANDLE;
31785     }
31786 
31787   private:
31788     VkDisplayKHR m_displayKHR;
31789   };
31790   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
31791 
31792   template <>
31793   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayKHR>
31794   {
31795     using type = VULKAN_HPP_NAMESPACE::DisplayKHR;
31796   };
31797 
31798   template <>
31799   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR>
31800   {
31801     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
31802   };
31803 
31804 
31805   template <>
31806   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR>
31807   {
31808     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
31809   };
31810 
31811 
31812   template <>
31813   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayKHR>
31814   {
31815     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
31816   };
31817 
31818   struct PerformanceConfigurationAcquireInfoINTEL
31819   {
31820     static const bool allowDuplicate = false;
31821     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
31822 
31823 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31824     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated) VULKAN_HPP_NOEXCEPT
31825     : type( type_ )
31826     {}
31827 
31828     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31829 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31830     PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
31831     {
31832       *this = rhs;
31833     }
31834 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31835 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31836     PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
31837     {
31838       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>( &rhs );
31839       return *this;
31840     }
31841 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31842     PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
31843     {
31844       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceConfigurationAcquireInfoINTEL ) );
31845       return *this;
31846     }
31847 
setPNextVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31848     PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31849     {
31850       pNext = pNext_;
31851       return *this;
31852     }
31853 
setTypeVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31854     PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
31855     {
31856       type = type_;
31857       return *this;
31858     }
31859 
31860 
operator VkPerformanceConfigurationAcquireInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31861     operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
31862     {
31863       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
31864     }
31865 
operator VkPerformanceConfigurationAcquireInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31866     operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
31867     {
31868       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
31869     }
31870 
31871 
31872 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31873     auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const& ) const = default;
31874 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31875     bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
31876     {
31877       return ( sType == rhs.sType )
31878           && ( pNext == rhs.pNext )
31879           && ( type == rhs.type );
31880     }
31881 
operator !=VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL31882     bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
31883     {
31884       return !operator==( rhs );
31885     }
31886 #endif
31887 
31888 
31889 
31890   public:
31891     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
31892     const void* pNext = {};
31893     VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
31894 
31895   };
31896   static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" );
31897   static_assert( std::is_standard_layout<PerformanceConfigurationAcquireInfoINTEL>::value, "struct wrapper is not a standard layout!" );
31898 
31899   template <>
31900   struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
31901   {
31902     using Type = PerformanceConfigurationAcquireInfoINTEL;
31903   };
31904 
31905   class PerformanceConfigurationINTEL
31906   {
31907   public:
31908     using CType = VkPerformanceConfigurationINTEL;
31909 
31910     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL;
31911     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
31912 
31913   public:
PerformanceConfigurationINTEL()31914     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT
31915       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
31916     {}
31917 
PerformanceConfigurationINTEL(std::nullptr_t)31918     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31919       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
31920     {}
31921 
PerformanceConfigurationINTEL(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)31922     VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT
31923       : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
31924     {}
31925 
31926 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)31927     PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT
31928     {
31929       m_performanceConfigurationINTEL = performanceConfigurationINTEL;
31930       return *this;
31931     }
31932 #endif
31933 
operator =(std::nullptr_t)31934     PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31935     {
31936       m_performanceConfigurationINTEL = VK_NULL_HANDLE;
31937       return *this;
31938     }
31939 
31940 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31941     auto operator<=>( PerformanceConfigurationINTEL const& ) const = default;
31942 #else
operator ==(PerformanceConfigurationINTEL const & rhs) const31943     bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
31944     {
31945       return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL;
31946     }
31947 
operator !=(PerformanceConfigurationINTEL const & rhs) const31948     bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
31949     {
31950       return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL;
31951     }
31952 
operator <(PerformanceConfigurationINTEL const & rhs) const31953     bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
31954     {
31955       return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL;
31956     }
31957 #endif
31958 
operator VkPerformanceConfigurationINTEL() const31959     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT
31960     {
31961       return m_performanceConfigurationINTEL;
31962     }
31963 
operator bool() const31964     explicit operator bool() const VULKAN_HPP_NOEXCEPT
31965     {
31966       return m_performanceConfigurationINTEL != VK_NULL_HANDLE;
31967     }
31968 
operator !() const31969     bool operator!() const VULKAN_HPP_NOEXCEPT
31970     {
31971       return m_performanceConfigurationINTEL == VK_NULL_HANDLE;
31972     }
31973 
31974   private:
31975     VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL;
31976   };
31977   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" );
31978 
31979   template <>
31980   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePerformanceConfigurationINTEL>
31981   {
31982     using type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
31983   };
31984 
31985   template <>
31986   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL>
31987   {
31988     using Type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
31989   };
31990 
31991 
31992 
31993   template <>
31994   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
31995   {
31996     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
31997   };
31998 
31999   class QueryPool
32000   {
32001   public:
32002     using CType = VkQueryPool;
32003 
32004     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool;
32005     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
32006 
32007   public:
QueryPool()32008     VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT
32009       : m_queryPool(VK_NULL_HANDLE)
32010     {}
32011 
QueryPool(std::nullptr_t)32012     VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32013       : m_queryPool(VK_NULL_HANDLE)
32014     {}
32015 
QueryPool(VkQueryPool queryPool)32016     VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT
32017       : m_queryPool( queryPool )
32018     {}
32019 
32020 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueryPool queryPool)32021     QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT
32022     {
32023       m_queryPool = queryPool;
32024       return *this;
32025     }
32026 #endif
32027 
operator =(std::nullptr_t)32028     QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32029     {
32030       m_queryPool = VK_NULL_HANDLE;
32031       return *this;
32032     }
32033 
32034 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32035     auto operator<=>( QueryPool const& ) const = default;
32036 #else
operator ==(QueryPool const & rhs) const32037     bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32038     {
32039       return m_queryPool == rhs.m_queryPool;
32040     }
32041 
operator !=(QueryPool const & rhs) const32042     bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32043     {
32044       return m_queryPool != rhs.m_queryPool;
32045     }
32046 
operator <(QueryPool const & rhs) const32047     bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32048     {
32049       return m_queryPool < rhs.m_queryPool;
32050     }
32051 #endif
32052 
operator VkQueryPool() const32053     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT
32054     {
32055       return m_queryPool;
32056     }
32057 
operator bool() const32058     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32059     {
32060       return m_queryPool != VK_NULL_HANDLE;
32061     }
32062 
operator !() const32063     bool operator!() const VULKAN_HPP_NOEXCEPT
32064     {
32065       return m_queryPool == VK_NULL_HANDLE;
32066     }
32067 
32068   private:
32069     VkQueryPool m_queryPool;
32070   };
32071   static_assert( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
32072 
32073   template <>
32074   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueryPool>
32075   {
32076     using type = VULKAN_HPP_NAMESPACE::QueryPool;
32077   };
32078 
32079   template <>
32080   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool>
32081   {
32082     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
32083   };
32084 
32085 
32086   template <>
32087   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool>
32088   {
32089     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
32090   };
32091 
32092 
32093   template <>
32094   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::QueryPool>
32095   {
32096     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32097   };
32098 
32099   struct RenderPassBeginInfo
32100   {
32101     static const bool allowDuplicate = false;
32102     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
32103 
32104 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32105     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
32106     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( clearValueCount_ ), pClearValues( pClearValues_ )
32107     {}
32108 
32109     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32110 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32111     RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32112     {
32113       *this = rhs;
32114     }
32115 
32116 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32117     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_ )
32118     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( static_cast<uint32_t>( clearValues_.size() ) ), pClearValues( clearValues_.data() )
32119     {}
32120 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32121 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32122 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32123     RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32124     {
32125       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>( &rhs );
32126       return *this;
32127     }
32128 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32129     RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32130     {
32131       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassBeginInfo ) );
32132       return *this;
32133     }
32134 
setPNextVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32135     RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32136     {
32137       pNext = pNext_;
32138       return *this;
32139     }
32140 
setRenderPassVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32141     RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
32142     {
32143       renderPass = renderPass_;
32144       return *this;
32145     }
32146 
setFramebufferVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32147     RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
32148     {
32149       framebuffer = framebuffer_;
32150       return *this;
32151     }
32152 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32153     RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
32154     {
32155       renderArea = renderArea_;
32156       return *this;
32157     }
32158 
setClearValueCountVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32159     RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
32160     {
32161       clearValueCount = clearValueCount_;
32162       return *this;
32163     }
32164 
setPClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32165     RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT
32166     {
32167       pClearValues = pClearValues_;
32168       return *this;
32169     }
32170 
32171 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32172     RenderPassBeginInfo & setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ ) VULKAN_HPP_NOEXCEPT
32173     {
32174       clearValueCount = static_cast<uint32_t>( clearValues_.size() );
32175       pClearValues = clearValues_.data();
32176       return *this;
32177     }
32178 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32179 
32180 
operator VkRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32181     operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
32182     {
32183       return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
32184     }
32185 
operator VkRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32186     operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
32187     {
32188       return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
32189     }
32190 
32191 
32192 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32193     auto operator<=>( RenderPassBeginInfo const& ) const = default;
32194 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32195     bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32196     {
32197       return ( sType == rhs.sType )
32198           && ( pNext == rhs.pNext )
32199           && ( renderPass == rhs.renderPass )
32200           && ( framebuffer == rhs.framebuffer )
32201           && ( renderArea == rhs.renderArea )
32202           && ( clearValueCount == rhs.clearValueCount )
32203           && ( pClearValues == rhs.pClearValues );
32204     }
32205 
operator !=VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32206     bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32207     {
32208       return !operator==( rhs );
32209     }
32210 #endif
32211 
32212 
32213 
32214   public:
32215     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
32216     const void* pNext = {};
32217     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
32218     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
32219     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
32220     uint32_t clearValueCount = {};
32221     const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {};
32222 
32223   };
32224   static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" );
32225   static_assert( std::is_standard_layout<RenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
32226 
32227   template <>
32228   struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
32229   {
32230     using Type = RenderPassBeginInfo;
32231   };
32232 
32233   struct SubpassBeginInfo
32234   {
32235     static const bool allowDuplicate = false;
32236     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
32237 
32238 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo32239     VULKAN_HPP_CONSTEXPR SubpassBeginInfo(VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline) VULKAN_HPP_NOEXCEPT
32240     : contents( contents_ )
32241     {}
32242 
32243     VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32244 
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo32245     SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32246     {
32247       *this = rhs;
32248     }
32249 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32250 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo32251     SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32252     {
32253       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>( &rhs );
32254       return *this;
32255     }
32256 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo32257     SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32258     {
32259       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassBeginInfo ) );
32260       return *this;
32261     }
32262 
setPNextVULKAN_HPP_NAMESPACE::SubpassBeginInfo32263     SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32264     {
32265       pNext = pNext_;
32266       return *this;
32267     }
32268 
setContentsVULKAN_HPP_NAMESPACE::SubpassBeginInfo32269     SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
32270     {
32271       contents = contents_;
32272       return *this;
32273     }
32274 
32275 
operator VkSubpassBeginInfo const&VULKAN_HPP_NAMESPACE::SubpassBeginInfo32276     operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
32277     {
32278       return *reinterpret_cast<const VkSubpassBeginInfo*>( this );
32279     }
32280 
operator VkSubpassBeginInfo&VULKAN_HPP_NAMESPACE::SubpassBeginInfo32281     operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
32282     {
32283       return *reinterpret_cast<VkSubpassBeginInfo*>( this );
32284     }
32285 
32286 
32287 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32288     auto operator<=>( SubpassBeginInfo const& ) const = default;
32289 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassBeginInfo32290     bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32291     {
32292       return ( sType == rhs.sType )
32293           && ( pNext == rhs.pNext )
32294           && ( contents == rhs.contents );
32295     }
32296 
operator !=VULKAN_HPP_NAMESPACE::SubpassBeginInfo32297     bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32298     {
32299       return !operator==( rhs );
32300     }
32301 #endif
32302 
32303 
32304 
32305   public:
32306     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
32307     const void* pNext = {};
32308     VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
32309 
32310   };
32311   static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" );
32312   static_assert( std::is_standard_layout<SubpassBeginInfo>::value, "struct wrapper is not a standard layout!" );
32313 
32314   template <>
32315   struct CppType<StructureType, StructureType::eSubpassBeginInfo>
32316   {
32317     using Type = SubpassBeginInfo;
32318   };
32319   using SubpassBeginInfoKHR = SubpassBeginInfo;
32320 
32321   struct ImageBlit
32322   {
32323 
32324 
32325 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit32326     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
32327     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
32328     {}
32329 
32330     VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32331 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit32332     ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32333     {
32334       *this = rhs;
32335     }
32336 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32337 
operator =VULKAN_HPP_NAMESPACE::ImageBlit32338     ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32339     {
32340       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>( &rhs );
32341       return *this;
32342     }
32343 
operator =VULKAN_HPP_NAMESPACE::ImageBlit32344     ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32345     {
32346       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageBlit ) );
32347       return *this;
32348     }
32349 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit32350     ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
32351     {
32352       srcSubresource = srcSubresource_;
32353       return *this;
32354     }
32355 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit32356     ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
32357     {
32358       srcOffsets = srcOffsets_;
32359       return *this;
32360     }
32361 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit32362     ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
32363     {
32364       dstSubresource = dstSubresource_;
32365       return *this;
32366     }
32367 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit32368     ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
32369     {
32370       dstOffsets = dstOffsets_;
32371       return *this;
32372     }
32373 
32374 
operator VkImageBlit const&VULKAN_HPP_NAMESPACE::ImageBlit32375     operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT
32376     {
32377       return *reinterpret_cast<const VkImageBlit*>( this );
32378     }
32379 
operator VkImageBlit&VULKAN_HPP_NAMESPACE::ImageBlit32380     operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
32381     {
32382       return *reinterpret_cast<VkImageBlit*>( this );
32383     }
32384 
32385 
32386 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32387     auto operator<=>( ImageBlit const& ) const = default;
32388 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit32389     bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
32390     {
32391       return ( srcSubresource == rhs.srcSubresource )
32392           && ( srcOffsets == rhs.srcOffsets )
32393           && ( dstSubresource == rhs.dstSubresource )
32394           && ( dstOffsets == rhs.dstOffsets );
32395     }
32396 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit32397     bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
32398     {
32399       return !operator==( rhs );
32400     }
32401 #endif
32402 
32403 
32404 
32405   public:
32406     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
32407     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
32408     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
32409     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
32410 
32411   };
32412   static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" );
32413   static_assert( std::is_standard_layout<ImageBlit>::value, "struct wrapper is not a standard layout!" );
32414 
32415   struct ImageSubresourceRange
32416   {
32417 
32418 
32419 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange32420     VULKAN_HPP_CONSTEXPR ImageSubresourceRange(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t baseMipLevel_ = {}, uint32_t levelCount_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
32421     : aspectMask( aspectMask_ ), baseMipLevel( baseMipLevel_ ), levelCount( levelCount_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
32422     {}
32423 
32424     VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32425 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange32426     ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32427     {
32428       *this = rhs;
32429     }
32430 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32431 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange32432     ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32433     {
32434       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>( &rhs );
32435       return *this;
32436     }
32437 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange32438     ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32439     {
32440       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresourceRange ) );
32441       return *this;
32442     }
32443 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceRange32444     ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
32445     {
32446       aspectMask = aspectMask_;
32447       return *this;
32448     }
32449 
setBaseMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceRange32450     ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
32451     {
32452       baseMipLevel = baseMipLevel_;
32453       return *this;
32454     }
32455 
setLevelCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange32456     ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
32457     {
32458       levelCount = levelCount_;
32459       return *this;
32460     }
32461 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceRange32462     ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
32463     {
32464       baseArrayLayer = baseArrayLayer_;
32465       return *this;
32466     }
32467 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange32468     ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
32469     {
32470       layerCount = layerCount_;
32471       return *this;
32472     }
32473 
32474 
operator VkImageSubresourceRange const&VULKAN_HPP_NAMESPACE::ImageSubresourceRange32475     operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT
32476     {
32477       return *reinterpret_cast<const VkImageSubresourceRange*>( this );
32478     }
32479 
operator VkImageSubresourceRange&VULKAN_HPP_NAMESPACE::ImageSubresourceRange32480     operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
32481     {
32482       return *reinterpret_cast<VkImageSubresourceRange*>( this );
32483     }
32484 
32485 
32486 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32487     auto operator<=>( ImageSubresourceRange const& ) const = default;
32488 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceRange32489     bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
32490     {
32491       return ( aspectMask == rhs.aspectMask )
32492           && ( baseMipLevel == rhs.baseMipLevel )
32493           && ( levelCount == rhs.levelCount )
32494           && ( baseArrayLayer == rhs.baseArrayLayer )
32495           && ( layerCount == rhs.layerCount );
32496     }
32497 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceRange32498     bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
32499     {
32500       return !operator==( rhs );
32501     }
32502 #endif
32503 
32504 
32505 
32506   public:
32507     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
32508     uint32_t baseMipLevel = {};
32509     uint32_t levelCount = {};
32510     uint32_t baseArrayLayer = {};
32511     uint32_t layerCount = {};
32512 
32513   };
32514   static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" );
32515   static_assert( std::is_standard_layout<ImageSubresourceRange>::value, "struct wrapper is not a standard layout!" );
32516 
32517   struct ImageCopy
32518   {
32519 
32520 
32521 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy32522     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
32523     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
32524     {}
32525 
32526     VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32527 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy32528     ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32529     {
32530       *this = rhs;
32531     }
32532 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32533 
operator =VULKAN_HPP_NAMESPACE::ImageCopy32534     ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32535     {
32536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>( &rhs );
32537       return *this;
32538     }
32539 
operator =VULKAN_HPP_NAMESPACE::ImageCopy32540     ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32541     {
32542       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCopy ) );
32543       return *this;
32544     }
32545 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy32546     ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
32547     {
32548       srcSubresource = srcSubresource_;
32549       return *this;
32550     }
32551 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy32552     ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
32553     {
32554       srcOffset = srcOffset_;
32555       return *this;
32556     }
32557 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy32558     ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
32559     {
32560       dstSubresource = dstSubresource_;
32561       return *this;
32562     }
32563 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy32564     ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
32565     {
32566       dstOffset = dstOffset_;
32567       return *this;
32568     }
32569 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy32570     ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
32571     {
32572       extent = extent_;
32573       return *this;
32574     }
32575 
32576 
operator VkImageCopy const&VULKAN_HPP_NAMESPACE::ImageCopy32577     operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT
32578     {
32579       return *reinterpret_cast<const VkImageCopy*>( this );
32580     }
32581 
operator VkImageCopy&VULKAN_HPP_NAMESPACE::ImageCopy32582     operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
32583     {
32584       return *reinterpret_cast<VkImageCopy*>( this );
32585     }
32586 
32587 
32588 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32589     auto operator<=>( ImageCopy const& ) const = default;
32590 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy32591     bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
32592     {
32593       return ( srcSubresource == rhs.srcSubresource )
32594           && ( srcOffset == rhs.srcOffset )
32595           && ( dstSubresource == rhs.dstSubresource )
32596           && ( dstOffset == rhs.dstOffset )
32597           && ( extent == rhs.extent );
32598     }
32599 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy32600     bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
32601     {
32602       return !operator==( rhs );
32603     }
32604 #endif
32605 
32606 
32607 
32608   public:
32609     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
32610     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
32611     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
32612     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
32613     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
32614 
32615   };
32616   static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" );
32617   static_assert( std::is_standard_layout<ImageCopy>::value, "struct wrapper is not a standard layout!" );
32618 
32619   struct SubpassEndInfo
32620   {
32621     static const bool allowDuplicate = false;
32622     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
32623 
32624 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo32625     VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT
32626 
32627     {}
32628 
32629     VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32630 
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo32631     SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32632     {
32633       *this = rhs;
32634     }
32635 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32636 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo32637     SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32638     {
32639       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>( &rhs );
32640       return *this;
32641     }
32642 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo32643     SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32644     {
32645       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassEndInfo ) );
32646       return *this;
32647     }
32648 
setPNextVULKAN_HPP_NAMESPACE::SubpassEndInfo32649     SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32650     {
32651       pNext = pNext_;
32652       return *this;
32653     }
32654 
32655 
operator VkSubpassEndInfo const&VULKAN_HPP_NAMESPACE::SubpassEndInfo32656     operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT
32657     {
32658       return *reinterpret_cast<const VkSubpassEndInfo*>( this );
32659     }
32660 
operator VkSubpassEndInfo&VULKAN_HPP_NAMESPACE::SubpassEndInfo32661     operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
32662     {
32663       return *reinterpret_cast<VkSubpassEndInfo*>( this );
32664     }
32665 
32666 
32667 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32668     auto operator<=>( SubpassEndInfo const& ) const = default;
32669 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassEndInfo32670     bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32671     {
32672       return ( sType == rhs.sType )
32673           && ( pNext == rhs.pNext );
32674     }
32675 
operator !=VULKAN_HPP_NAMESPACE::SubpassEndInfo32676     bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32677     {
32678       return !operator==( rhs );
32679     }
32680 #endif
32681 
32682 
32683 
32684   public:
32685     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
32686     const void* pNext = {};
32687 
32688   };
32689   static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" );
32690   static_assert( std::is_standard_layout<SubpassEndInfo>::value, "struct wrapper is not a standard layout!" );
32691 
32692   template <>
32693   struct CppType<StructureType, StructureType::eSubpassEndInfo>
32694   {
32695     using Type = SubpassEndInfo;
32696   };
32697   using SubpassEndInfoKHR = SubpassEndInfo;
32698 
32699   class IndirectCommandsLayoutNV
32700   {
32701   public:
32702     using CType = VkIndirectCommandsLayoutNV;
32703 
32704     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV;
32705     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
32706 
32707   public:
IndirectCommandsLayoutNV()32708     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() VULKAN_HPP_NOEXCEPT
32709       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
32710     {}
32711 
IndirectCommandsLayoutNV(std::nullptr_t)32712     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32713       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
32714     {}
32715 
IndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)32716     VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT
32717       : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV )
32718     {}
32719 
32720 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)32721     IndirectCommandsLayoutNV & operator=(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV) VULKAN_HPP_NOEXCEPT
32722     {
32723       m_indirectCommandsLayoutNV = indirectCommandsLayoutNV;
32724       return *this;
32725     }
32726 #endif
32727 
operator =(std::nullptr_t)32728     IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32729     {
32730       m_indirectCommandsLayoutNV = VK_NULL_HANDLE;
32731       return *this;
32732     }
32733 
32734 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32735     auto operator<=>( IndirectCommandsLayoutNV const& ) const = default;
32736 #else
operator ==(IndirectCommandsLayoutNV const & rhs) const32737     bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32738     {
32739       return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV;
32740     }
32741 
operator !=(IndirectCommandsLayoutNV const & rhs) const32742     bool operator!=(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32743     {
32744       return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV;
32745     }
32746 
operator <(IndirectCommandsLayoutNV const & rhs) const32747     bool operator<(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32748     {
32749       return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV;
32750     }
32751 #endif
32752 
operator VkIndirectCommandsLayoutNV() const32753     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT
32754     {
32755       return m_indirectCommandsLayoutNV;
32756     }
32757 
operator bool() const32758     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32759     {
32760       return m_indirectCommandsLayoutNV != VK_NULL_HANDLE;
32761     }
32762 
operator !() const32763     bool operator!() const VULKAN_HPP_NOEXCEPT
32764     {
32765       return m_indirectCommandsLayoutNV == VK_NULL_HANDLE;
32766     }
32767 
32768   private:
32769     VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV;
32770   };
32771   static_assert( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), "handle and wrapper have different size!" );
32772 
32773   template <>
32774   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eIndirectCommandsLayoutNV>
32775   {
32776     using type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
32777   };
32778 
32779   template <>
32780   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV>
32781   {
32782     using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
32783   };
32784 
32785 
32786 
32787   template <>
32788   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
32789   {
32790     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32791   };
32792 
32793   struct IndirectCommandsStreamNV
32794   {
32795 
32796 
32797 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32798     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
32799     : buffer( buffer_ ), offset( offset_ )
32800     {}
32801 
32802     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32803 
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32804     IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
32805     {
32806       *this = rhs;
32807     }
32808 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32809 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32810     IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
32811     {
32812       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>( &rhs );
32813       return *this;
32814     }
32815 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32816     IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
32817     {
32818       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsStreamNV ) );
32819       return *this;
32820     }
32821 
setBufferVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32822     IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
32823     {
32824       buffer = buffer_;
32825       return *this;
32826     }
32827 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32828     IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
32829     {
32830       offset = offset_;
32831       return *this;
32832     }
32833 
32834 
operator VkIndirectCommandsStreamNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32835     operator VkIndirectCommandsStreamNV const&() const VULKAN_HPP_NOEXCEPT
32836     {
32837       return *reinterpret_cast<const VkIndirectCommandsStreamNV*>( this );
32838     }
32839 
operator VkIndirectCommandsStreamNV&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32840     operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
32841     {
32842       return *reinterpret_cast<VkIndirectCommandsStreamNV*>( this );
32843     }
32844 
32845 
32846 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32847     auto operator<=>( IndirectCommandsStreamNV const& ) const = default;
32848 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32849     bool operator==( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32850     {
32851       return ( buffer == rhs.buffer )
32852           && ( offset == rhs.offset );
32853     }
32854 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV32855     bool operator!=( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
32856     {
32857       return !operator==( rhs );
32858     }
32859 #endif
32860 
32861 
32862 
32863   public:
32864     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
32865     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
32866 
32867   };
32868   static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), "struct and wrapper have different size!" );
32869   static_assert( std::is_standard_layout<IndirectCommandsStreamNV>::value, "struct wrapper is not a standard layout!" );
32870 
32871   struct GeneratedCommandsInfoNV
32872   {
32873     static const bool allowDuplicate = false;
32874     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
32875 
32876 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32877     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
32878     : 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_ )
32879     {}
32880 
32881     VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32882 
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32883     GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32884     {
32885       *this = rhs;
32886     }
32887 
32888 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32889     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_ = {} )
32890     : 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_ )
32891     {}
32892 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32893 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32894 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32895     GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32896     {
32897       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>( &rhs );
32898       return *this;
32899     }
32900 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32901     GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
32902     {
32903       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeneratedCommandsInfoNV ) );
32904       return *this;
32905     }
32906 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32907     GeneratedCommandsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32908     {
32909       pNext = pNext_;
32910       return *this;
32911     }
32912 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32913     GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
32914     {
32915       pipelineBindPoint = pipelineBindPoint_;
32916       return *this;
32917     }
32918 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32919     GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
32920     {
32921       pipeline = pipeline_;
32922       return *this;
32923     }
32924 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32925     GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
32926     {
32927       indirectCommandsLayout = indirectCommandsLayout_;
32928       return *this;
32929     }
32930 
setStreamCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32931     GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
32932     {
32933       streamCount = streamCount_;
32934       return *this;
32935     }
32936 
setPStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32937     GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ ) VULKAN_HPP_NOEXCEPT
32938     {
32939       pStreams = pStreams_;
32940       return *this;
32941     }
32942 
32943 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32944     GeneratedCommandsInfoNV & setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_ ) VULKAN_HPP_NOEXCEPT
32945     {
32946       streamCount = static_cast<uint32_t>( streams_.size() );
32947       pStreams = streams_.data();
32948       return *this;
32949     }
32950 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32951 
setSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32952     GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
32953     {
32954       sequencesCount = sequencesCount_;
32955       return *this;
32956     }
32957 
setPreprocessBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32958     GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
32959     {
32960       preprocessBuffer = preprocessBuffer_;
32961       return *this;
32962     }
32963 
setPreprocessOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32964     GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
32965     {
32966       preprocessOffset = preprocessOffset_;
32967       return *this;
32968     }
32969 
setPreprocessSizeVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32970     GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
32971     {
32972       preprocessSize = preprocessSize_;
32973       return *this;
32974     }
32975 
setSequencesCountBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32976     GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
32977     {
32978       sequencesCountBuffer = sequencesCountBuffer_;
32979       return *this;
32980     }
32981 
setSequencesCountOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32982     GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
32983     {
32984       sequencesCountOffset = sequencesCountOffset_;
32985       return *this;
32986     }
32987 
setSequencesIndexBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32988     GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
32989     {
32990       sequencesIndexBuffer = sequencesIndexBuffer_;
32991       return *this;
32992     }
32993 
setSequencesIndexOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV32994     GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
32995     {
32996       sequencesIndexOffset = sequencesIndexOffset_;
32997       return *this;
32998     }
32999 
33000 
operator VkGeneratedCommandsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33001     operator VkGeneratedCommandsInfoNV const&() const VULKAN_HPP_NOEXCEPT
33002     {
33003       return *reinterpret_cast<const VkGeneratedCommandsInfoNV*>( this );
33004     }
33005 
operator VkGeneratedCommandsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33006     operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
33007     {
33008       return *reinterpret_cast<VkGeneratedCommandsInfoNV*>( this );
33009     }
33010 
33011 
33012 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33013     auto operator<=>( GeneratedCommandsInfoNV const& ) const = default;
33014 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33015     bool operator==( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33016     {
33017       return ( sType == rhs.sType )
33018           && ( pNext == rhs.pNext )
33019           && ( pipelineBindPoint == rhs.pipelineBindPoint )
33020           && ( pipeline == rhs.pipeline )
33021           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
33022           && ( streamCount == rhs.streamCount )
33023           && ( pStreams == rhs.pStreams )
33024           && ( sequencesCount == rhs.sequencesCount )
33025           && ( preprocessBuffer == rhs.preprocessBuffer )
33026           && ( preprocessOffset == rhs.preprocessOffset )
33027           && ( preprocessSize == rhs.preprocessSize )
33028           && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
33029           && ( sequencesCountOffset == rhs.sequencesCountOffset )
33030           && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
33031           && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
33032     }
33033 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33034     bool operator!=( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33035     {
33036       return !operator==( rhs );
33037     }
33038 #endif
33039 
33040 
33041 
33042   public:
33043     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
33044     const void* pNext = {};
33045     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
33046     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
33047     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
33048     uint32_t streamCount = {};
33049     const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams = {};
33050     uint32_t sequencesCount = {};
33051     VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
33052     VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
33053     VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
33054     VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
33055     VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
33056     VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
33057     VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
33058 
33059   };
33060   static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), "struct and wrapper have different size!" );
33061   static_assert( std::is_standard_layout<GeneratedCommandsInfoNV>::value, "struct wrapper is not a standard layout!" );
33062 
33063   template <>
33064   struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
33065   {
33066     using Type = GeneratedCommandsInfoNV;
33067   };
33068 
33069   struct MemoryBarrier
33070   {
33071     static const bool allowDuplicate = false;
33072     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
33073 
33074 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier33075     VULKAN_HPP_CONSTEXPR MemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT
33076     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ )
33077     {}
33078 
33079     VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33080 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier33081     MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33082     {
33083       *this = rhs;
33084     }
33085 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33086 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier33087     MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33088     {
33089       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>( &rhs );
33090       return *this;
33091     }
33092 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier33093     MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33094     {
33095       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryBarrier ) );
33096       return *this;
33097     }
33098 
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier33099     MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33100     {
33101       pNext = pNext_;
33102       return *this;
33103     }
33104 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier33105     MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
33106     {
33107       srcAccessMask = srcAccessMask_;
33108       return *this;
33109     }
33110 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier33111     MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
33112     {
33113       dstAccessMask = dstAccessMask_;
33114       return *this;
33115     }
33116 
33117 
operator VkMemoryBarrier const&VULKAN_HPP_NAMESPACE::MemoryBarrier33118     operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
33119     {
33120       return *reinterpret_cast<const VkMemoryBarrier*>( this );
33121     }
33122 
operator VkMemoryBarrier&VULKAN_HPP_NAMESPACE::MemoryBarrier33123     operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
33124     {
33125       return *reinterpret_cast<VkMemoryBarrier*>( this );
33126     }
33127 
33128 
33129 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33130     auto operator<=>( MemoryBarrier const& ) const = default;
33131 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier33132     bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33133     {
33134       return ( sType == rhs.sType )
33135           && ( pNext == rhs.pNext )
33136           && ( srcAccessMask == rhs.srcAccessMask )
33137           && ( dstAccessMask == rhs.dstAccessMask );
33138     }
33139 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier33140     bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33141     {
33142       return !operator==( rhs );
33143     }
33144 #endif
33145 
33146 
33147 
33148   public:
33149     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
33150     const void* pNext = {};
33151     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
33152     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
33153 
33154   };
33155   static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" );
33156   static_assert( std::is_standard_layout<MemoryBarrier>::value, "struct wrapper is not a standard layout!" );
33157 
33158   template <>
33159   struct CppType<StructureType, StructureType::eMemoryBarrier>
33160   {
33161     using Type = MemoryBarrier;
33162   };
33163 
33164   struct ImageMemoryBarrier
33165   {
33166     static const bool allowDuplicate = false;
33167     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
33168 
33169 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33170     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
33171     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ )
33172     {}
33173 
33174     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33175 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33176     ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33177     {
33178       *this = rhs;
33179     }
33180 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33181 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33182     ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33183     {
33184       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>( &rhs );
33185       return *this;
33186     }
33187 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33188     ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33189     {
33190       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageMemoryBarrier ) );
33191       return *this;
33192     }
33193 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33194     ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33195     {
33196       pNext = pNext_;
33197       return *this;
33198     }
33199 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33200     ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
33201     {
33202       srcAccessMask = srcAccessMask_;
33203       return *this;
33204     }
33205 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33206     ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
33207     {
33208       dstAccessMask = dstAccessMask_;
33209       return *this;
33210     }
33211 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33212     ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
33213     {
33214       oldLayout = oldLayout_;
33215       return *this;
33216     }
33217 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33218     ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
33219     {
33220       newLayout = newLayout_;
33221       return *this;
33222     }
33223 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33224     ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
33225     {
33226       srcQueueFamilyIndex = srcQueueFamilyIndex_;
33227       return *this;
33228     }
33229 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33230     ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
33231     {
33232       dstQueueFamilyIndex = dstQueueFamilyIndex_;
33233       return *this;
33234     }
33235 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33236     ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
33237     {
33238       image = image_;
33239       return *this;
33240     }
33241 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33242     ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
33243     {
33244       subresourceRange = subresourceRange_;
33245       return *this;
33246     }
33247 
33248 
operator VkImageMemoryBarrier const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33249     operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
33250     {
33251       return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
33252     }
33253 
operator VkImageMemoryBarrier&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33254     operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
33255     {
33256       return *reinterpret_cast<VkImageMemoryBarrier*>( this );
33257     }
33258 
33259 
33260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33261     auto operator<=>( ImageMemoryBarrier const& ) const = default;
33262 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33263     bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33264     {
33265       return ( sType == rhs.sType )
33266           && ( pNext == rhs.pNext )
33267           && ( srcAccessMask == rhs.srcAccessMask )
33268           && ( dstAccessMask == rhs.dstAccessMask )
33269           && ( oldLayout == rhs.oldLayout )
33270           && ( newLayout == rhs.newLayout )
33271           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
33272           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
33273           && ( image == rhs.image )
33274           && ( subresourceRange == rhs.subresourceRange );
33275     }
33276 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33277     bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33278     {
33279       return !operator==( rhs );
33280     }
33281 #endif
33282 
33283 
33284 
33285   public:
33286     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
33287     const void* pNext = {};
33288     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
33289     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
33290     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
33291     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
33292     uint32_t srcQueueFamilyIndex = {};
33293     uint32_t dstQueueFamilyIndex = {};
33294     VULKAN_HPP_NAMESPACE::Image image = {};
33295     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
33296 
33297   };
33298   static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" );
33299   static_assert( std::is_standard_layout<ImageMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
33300 
33301   template <>
33302   struct CppType<StructureType, StructureType::eImageMemoryBarrier>
33303   {
33304     using Type = ImageMemoryBarrier;
33305   };
33306 
33307   class BufferView
33308   {
33309   public:
33310     using CType = VkBufferView;
33311 
33312     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView;
33313     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
33314 
33315   public:
BufferView()33316     VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT
33317       : m_bufferView(VK_NULL_HANDLE)
33318     {}
33319 
BufferView(std::nullptr_t)33320     VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33321       : m_bufferView(VK_NULL_HANDLE)
33322     {}
33323 
BufferView(VkBufferView bufferView)33324     VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT
33325       : m_bufferView( bufferView )
33326     {}
33327 
33328 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBufferView bufferView)33329     BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT
33330     {
33331       m_bufferView = bufferView;
33332       return *this;
33333     }
33334 #endif
33335 
operator =(std::nullptr_t)33336     BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33337     {
33338       m_bufferView = VK_NULL_HANDLE;
33339       return *this;
33340     }
33341 
33342 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33343     auto operator<=>( BufferView const& ) const = default;
33344 #else
operator ==(BufferView const & rhs) const33345     bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33346     {
33347       return m_bufferView == rhs.m_bufferView;
33348     }
33349 
operator !=(BufferView const & rhs) const33350     bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33351     {
33352       return m_bufferView != rhs.m_bufferView;
33353     }
33354 
operator <(BufferView const & rhs) const33355     bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33356     {
33357       return m_bufferView < rhs.m_bufferView;
33358     }
33359 #endif
33360 
operator VkBufferView() const33361     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT
33362     {
33363       return m_bufferView;
33364     }
33365 
operator bool() const33366     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33367     {
33368       return m_bufferView != VK_NULL_HANDLE;
33369     }
33370 
operator !() const33371     bool operator!() const VULKAN_HPP_NOEXCEPT
33372     {
33373       return m_bufferView == VK_NULL_HANDLE;
33374     }
33375 
33376   private:
33377     VkBufferView m_bufferView;
33378   };
33379   static_assert( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
33380 
33381   template <>
33382   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBufferView>
33383   {
33384     using type = VULKAN_HPP_NAMESPACE::BufferView;
33385   };
33386 
33387   template <>
33388   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBufferView>
33389   {
33390     using Type = VULKAN_HPP_NAMESPACE::BufferView;
33391   };
33392 
33393 
33394   template <>
33395   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView>
33396   {
33397     using Type = VULKAN_HPP_NAMESPACE::BufferView;
33398   };
33399 
33400 
33401   template <>
33402   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::BufferView>
33403   {
33404     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33405   };
33406 
33407   struct WriteDescriptorSet
33408   {
33409     static const bool allowDuplicate = false;
33410     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
33411 
33412 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33413     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
33414     : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), pImageInfo( pImageInfo_ ), pBufferInfo( pBufferInfo_ ), pTexelBufferView( pTexelBufferView_ )
33415     {}
33416 
33417     VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33418 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33419     WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33420     {
33421       *this = rhs;
33422     }
33423 
33424 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33425     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_ = {} )
33426     : 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() )
33427     {
33428 #ifdef VULKAN_HPP_NO_EXCEPTIONS
33429       VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) == 1 );
33430 #else
33431       if ( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1 )
33432       {
33433         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::WriteDescriptorSet::WriteDescriptorSet: ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1" );
33434       }
33435 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
33436     }
33437 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33438 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33439 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet33440     WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33441     {
33442       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
33443       return *this;
33444     }
33445 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet33446     WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33447     {
33448       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSet ) );
33449       return *this;
33450     }
33451 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSet33452     WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33453     {
33454       pNext = pNext_;
33455       return *this;
33456     }
33457 
setDstSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33458     WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
33459     {
33460       dstSet = dstSet_;
33461       return *this;
33462     }
33463 
setDstBindingVULKAN_HPP_NAMESPACE::WriteDescriptorSet33464     WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
33465     {
33466       dstBinding = dstBinding_;
33467       return *this;
33468     }
33469 
setDstArrayElementVULKAN_HPP_NAMESPACE::WriteDescriptorSet33470     WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
33471     {
33472       dstArrayElement = dstArrayElement_;
33473       return *this;
33474     }
33475 
setDescriptorCountVULKAN_HPP_NAMESPACE::WriteDescriptorSet33476     WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
33477     {
33478       descriptorCount = descriptorCount_;
33479       return *this;
33480     }
33481 
setDescriptorTypeVULKAN_HPP_NAMESPACE::WriteDescriptorSet33482     WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
33483     {
33484       descriptorType = descriptorType_;
33485       return *this;
33486     }
33487 
setPImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33488     WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT
33489     {
33490       pImageInfo = pImageInfo_;
33491       return *this;
33492     }
33493 
33494 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33495     WriteDescriptorSet & setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
33496     {
33497       descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
33498       pImageInfo = imageInfo_.data();
33499       return *this;
33500     }
33501 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33502 
setPBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33503     WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
33504     {
33505       pBufferInfo = pBufferInfo_;
33506       return *this;
33507     }
33508 
33509 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33510     WriteDescriptorSet & setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
33511     {
33512       descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
33513       pBufferInfo = bufferInfo_.data();
33514       return *this;
33515     }
33516 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33517 
setPTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet33518     WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
33519     {
33520       pTexelBufferView = pTexelBufferView_;
33521       return *this;
33522     }
33523 
33524 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet33525     WriteDescriptorSet & setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
33526     {
33527       descriptorCount = static_cast<uint32_t>( texelBufferView_.size() );
33528       pTexelBufferView = texelBufferView_.data();
33529       return *this;
33530     }
33531 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33532 
33533 
operator VkWriteDescriptorSet const&VULKAN_HPP_NAMESPACE::WriteDescriptorSet33534     operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
33535     {
33536       return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
33537     }
33538 
operator VkWriteDescriptorSet&VULKAN_HPP_NAMESPACE::WriteDescriptorSet33539     operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
33540     {
33541       return *reinterpret_cast<VkWriteDescriptorSet*>( this );
33542     }
33543 
33544 
33545 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33546     auto operator<=>( WriteDescriptorSet const& ) const = default;
33547 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSet33548     bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
33549     {
33550       return ( sType == rhs.sType )
33551           && ( pNext == rhs.pNext )
33552           && ( dstSet == rhs.dstSet )
33553           && ( dstBinding == rhs.dstBinding )
33554           && ( dstArrayElement == rhs.dstArrayElement )
33555           && ( descriptorCount == rhs.descriptorCount )
33556           && ( descriptorType == rhs.descriptorType )
33557           && ( pImageInfo == rhs.pImageInfo )
33558           && ( pBufferInfo == rhs.pBufferInfo )
33559           && ( pTexelBufferView == rhs.pTexelBufferView );
33560     }
33561 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSet33562     bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
33563     {
33564       return !operator==( rhs );
33565     }
33566 #endif
33567 
33568 
33569 
33570   public:
33571     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
33572     const void* pNext = {};
33573     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
33574     uint32_t dstBinding = {};
33575     uint32_t dstArrayElement = {};
33576     uint32_t descriptorCount = {};
33577     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
33578     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {};
33579     const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {};
33580     const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {};
33581 
33582   };
33583   static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" );
33584   static_assert( std::is_standard_layout<WriteDescriptorSet>::value, "struct wrapper is not a standard layout!" );
33585 
33586   template <>
33587   struct CppType<StructureType, StructureType::eWriteDescriptorSet>
33588   {
33589     using Type = WriteDescriptorSet;
33590   };
33591 
33592   class DescriptorUpdateTemplate
33593   {
33594   public:
33595     using CType = VkDescriptorUpdateTemplate;
33596 
33597     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate;
33598     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
33599 
33600   public:
DescriptorUpdateTemplate()33601     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT
33602       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
33603     {}
33604 
DescriptorUpdateTemplate(std::nullptr_t)33605     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33606       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
33607     {}
33608 
DescriptorUpdateTemplate(VkDescriptorUpdateTemplate descriptorUpdateTemplate)33609     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT
33610       : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
33611     {}
33612 
33613 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorUpdateTemplate descriptorUpdateTemplate)33614     DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT
33615     {
33616       m_descriptorUpdateTemplate = descriptorUpdateTemplate;
33617       return *this;
33618     }
33619 #endif
33620 
operator =(std::nullptr_t)33621     DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33622     {
33623       m_descriptorUpdateTemplate = VK_NULL_HANDLE;
33624       return *this;
33625     }
33626 
33627 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33628     auto operator<=>( DescriptorUpdateTemplate const& ) const = default;
33629 #else
operator ==(DescriptorUpdateTemplate const & rhs) const33630     bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33631     {
33632       return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate;
33633     }
33634 
operator !=(DescriptorUpdateTemplate const & rhs) const33635     bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33636     {
33637       return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate;
33638     }
33639 
operator <(DescriptorUpdateTemplate const & rhs) const33640     bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33641     {
33642       return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate;
33643     }
33644 #endif
33645 
operator VkDescriptorUpdateTemplate() const33646     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT
33647     {
33648       return m_descriptorUpdateTemplate;
33649     }
33650 
operator bool() const33651     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33652     {
33653       return m_descriptorUpdateTemplate != VK_NULL_HANDLE;
33654     }
33655 
operator !() const33656     bool operator!() const VULKAN_HPP_NOEXCEPT
33657     {
33658       return m_descriptorUpdateTemplate == VK_NULL_HANDLE;
33659     }
33660 
33661   private:
33662     VkDescriptorUpdateTemplate m_descriptorUpdateTemplate;
33663   };
33664   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" );
33665 
33666   template <>
33667   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorUpdateTemplate>
33668   {
33669     using type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33670   };
33671 
33672   template <>
33673   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate>
33674   {
33675     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33676   };
33677 
33678 
33679   template <>
33680   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate>
33681   {
33682     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33683   };
33684 
33685 
33686   template <>
33687   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
33688   {
33689     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33690   };
33691   using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
33692 
33693   class Event
33694   {
33695   public:
33696     using CType = VkEvent;
33697 
33698     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent;
33699     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
33700 
33701   public:
Event()33702     VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT
33703       : m_event(VK_NULL_HANDLE)
33704     {}
33705 
Event(std::nullptr_t)33706     VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33707       : m_event(VK_NULL_HANDLE)
33708     {}
33709 
Event(VkEvent event)33710     VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT
33711       : m_event( event )
33712     {}
33713 
33714 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkEvent event)33715     Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT
33716     {
33717       m_event = event;
33718       return *this;
33719     }
33720 #endif
33721 
operator =(std::nullptr_t)33722     Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33723     {
33724       m_event = VK_NULL_HANDLE;
33725       return *this;
33726     }
33727 
33728 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33729     auto operator<=>( Event const& ) const = default;
33730 #else
operator ==(Event const & rhs) const33731     bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33732     {
33733       return m_event == rhs.m_event;
33734     }
33735 
operator !=(Event const & rhs) const33736     bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33737     {
33738       return m_event != rhs.m_event;
33739     }
33740 
operator <(Event const & rhs) const33741     bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33742     {
33743       return m_event < rhs.m_event;
33744     }
33745 #endif
33746 
operator VkEvent() const33747     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT
33748     {
33749       return m_event;
33750     }
33751 
operator bool() const33752     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33753     {
33754       return m_event != VK_NULL_HANDLE;
33755     }
33756 
operator !() const33757     bool operator!() const VULKAN_HPP_NOEXCEPT
33758     {
33759       return m_event == VK_NULL_HANDLE;
33760     }
33761 
33762   private:
33763     VkEvent m_event;
33764   };
33765   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
33766 
33767   template <>
33768   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eEvent>
33769   {
33770     using type = VULKAN_HPP_NAMESPACE::Event;
33771   };
33772 
33773   template <>
33774   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eEvent>
33775   {
33776     using Type = VULKAN_HPP_NAMESPACE::Event;
33777   };
33778 
33779 
33780   template <>
33781   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent>
33782   {
33783     using Type = VULKAN_HPP_NAMESPACE::Event;
33784   };
33785 
33786 
33787   template <>
33788   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Event>
33789   {
33790     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33791   };
33792 
33793   struct ImageResolve
33794   {
33795 
33796 
33797 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve33798     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
33799     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
33800     {}
33801 
33802     VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33803 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve33804     ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
33805     {
33806       *this = rhs;
33807     }
33808 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33809 
operator =VULKAN_HPP_NAMESPACE::ImageResolve33810     ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
33811     {
33812       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>( &rhs );
33813       return *this;
33814     }
33815 
operator =VULKAN_HPP_NAMESPACE::ImageResolve33816     ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
33817     {
33818       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageResolve ) );
33819       return *this;
33820     }
33821 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve33822     ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
33823     {
33824       srcSubresource = srcSubresource_;
33825       return *this;
33826     }
33827 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve33828     ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
33829     {
33830       srcOffset = srcOffset_;
33831       return *this;
33832     }
33833 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve33834     ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
33835     {
33836       dstSubresource = dstSubresource_;
33837       return *this;
33838     }
33839 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve33840     ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
33841     {
33842       dstOffset = dstOffset_;
33843       return *this;
33844     }
33845 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve33846     ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
33847     {
33848       extent = extent_;
33849       return *this;
33850     }
33851 
33852 
operator VkImageResolve const&VULKAN_HPP_NAMESPACE::ImageResolve33853     operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT
33854     {
33855       return *reinterpret_cast<const VkImageResolve*>( this );
33856     }
33857 
operator VkImageResolve&VULKAN_HPP_NAMESPACE::ImageResolve33858     operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
33859     {
33860       return *reinterpret_cast<VkImageResolve*>( this );
33861     }
33862 
33863 
33864 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33865     auto operator<=>( ImageResolve const& ) const = default;
33866 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve33867     bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
33868     {
33869       return ( srcSubresource == rhs.srcSubresource )
33870           && ( srcOffset == rhs.srcOffset )
33871           && ( dstSubresource == rhs.dstSubresource )
33872           && ( dstOffset == rhs.dstOffset )
33873           && ( extent == rhs.extent );
33874     }
33875 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve33876     bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
33877     {
33878       return !operator==( rhs );
33879     }
33880 #endif
33881 
33882 
33883 
33884   public:
33885     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
33886     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
33887     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
33888     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
33889     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
33890 
33891   };
33892   static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" );
33893   static_assert( std::is_standard_layout<ImageResolve>::value, "struct wrapper is not a standard layout!" );
33894 
33895   struct ImageResolve2KHR
33896   {
33897     static const bool allowDuplicate = false;
33898     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2KHR;
33899 
33900 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR33901     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
33902     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
33903     {}
33904 
33905     VULKAN_HPP_CONSTEXPR ImageResolve2KHR( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33906 
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR33907     ImageResolve2KHR( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
33908     {
33909       *this = rhs;
33910     }
33911 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33912 
operator =VULKAN_HPP_NAMESPACE::ImageResolve2KHR33913     ImageResolve2KHR & operator=( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
33914     {
33915       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve2KHR const *>( &rhs );
33916       return *this;
33917     }
33918 
operator =VULKAN_HPP_NAMESPACE::ImageResolve2KHR33919     ImageResolve2KHR & operator=( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
33920     {
33921       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageResolve2KHR ) );
33922       return *this;
33923     }
33924 
setPNextVULKAN_HPP_NAMESPACE::ImageResolve2KHR33925     ImageResolve2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33926     {
33927       pNext = pNext_;
33928       return *this;
33929     }
33930 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR33931     ImageResolve2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
33932     {
33933       srcSubresource = srcSubresource_;
33934       return *this;
33935     }
33936 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR33937     ImageResolve2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
33938     {
33939       srcOffset = srcOffset_;
33940       return *this;
33941     }
33942 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR33943     ImageResolve2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
33944     {
33945       dstSubresource = dstSubresource_;
33946       return *this;
33947     }
33948 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR33949     ImageResolve2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
33950     {
33951       dstOffset = dstOffset_;
33952       return *this;
33953     }
33954 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve2KHR33955     ImageResolve2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
33956     {
33957       extent = extent_;
33958       return *this;
33959     }
33960 
33961 
operator VkImageResolve2KHR const&VULKAN_HPP_NAMESPACE::ImageResolve2KHR33962     operator VkImageResolve2KHR const&() const VULKAN_HPP_NOEXCEPT
33963     {
33964       return *reinterpret_cast<const VkImageResolve2KHR*>( this );
33965     }
33966 
operator VkImageResolve2KHR&VULKAN_HPP_NAMESPACE::ImageResolve2KHR33967     operator VkImageResolve2KHR &() VULKAN_HPP_NOEXCEPT
33968     {
33969       return *reinterpret_cast<VkImageResolve2KHR*>( this );
33970     }
33971 
33972 
33973 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33974     auto operator<=>( ImageResolve2KHR const& ) const = default;
33975 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve2KHR33976     bool operator==( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
33977     {
33978       return ( sType == rhs.sType )
33979           && ( pNext == rhs.pNext )
33980           && ( srcSubresource == rhs.srcSubresource )
33981           && ( srcOffset == rhs.srcOffset )
33982           && ( dstSubresource == rhs.dstSubresource )
33983           && ( dstOffset == rhs.dstOffset )
33984           && ( extent == rhs.extent );
33985     }
33986 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve2KHR33987     bool operator!=( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
33988     {
33989       return !operator==( rhs );
33990     }
33991 #endif
33992 
33993 
33994 
33995   public:
33996     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2KHR;
33997     const void* pNext = {};
33998     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
33999     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
34000     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
34001     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
34002     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
34003 
34004   };
34005   static_assert( sizeof( ImageResolve2KHR ) == sizeof( VkImageResolve2KHR ), "struct and wrapper have different size!" );
34006   static_assert( std::is_standard_layout<ImageResolve2KHR>::value, "struct wrapper is not a standard layout!" );
34007 
34008   template <>
34009   struct CppType<StructureType, StructureType::eImageResolve2KHR>
34010   {
34011     using Type = ImageResolve2KHR;
34012   };
34013 
34014   struct ResolveImageInfo2KHR
34015   {
34016     static const bool allowDuplicate = false;
34017     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2KHR;
34018 
34019 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34020     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
34021     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
34022     {}
34023 
34024     VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34025 
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34026     ResolveImageInfo2KHR( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34027     {
34028       *this = rhs;
34029     }
34030 
34031 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34032     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_ )
34033     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
34034     {}
34035 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34036 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34037 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34038     ResolveImageInfo2KHR & operator=( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34039     {
34040       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR const *>( &rhs );
34041       return *this;
34042     }
34043 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34044     ResolveImageInfo2KHR & operator=( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34045     {
34046       memcpy( static_cast<void *>( this ), &rhs, sizeof( ResolveImageInfo2KHR ) );
34047       return *this;
34048     }
34049 
setPNextVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34050     ResolveImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34051     {
34052       pNext = pNext_;
34053       return *this;
34054     }
34055 
setSrcImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34056     ResolveImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
34057     {
34058       srcImage = srcImage_;
34059       return *this;
34060     }
34061 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34062     ResolveImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
34063     {
34064       srcImageLayout = srcImageLayout_;
34065       return *this;
34066     }
34067 
setDstImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34068     ResolveImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
34069     {
34070       dstImage = dstImage_;
34071       return *this;
34072     }
34073 
setDstImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34074     ResolveImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
34075     {
34076       dstImageLayout = dstImageLayout_;
34077       return *this;
34078     }
34079 
setRegionCountVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34080     ResolveImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
34081     {
34082       regionCount = regionCount_;
34083       return *this;
34084     }
34085 
setPRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34086     ResolveImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
34087     {
34088       pRegions = pRegions_;
34089       return *this;
34090     }
34091 
34092 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34093     ResolveImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
34094     {
34095       regionCount = static_cast<uint32_t>( regions_.size() );
34096       pRegions = regions_.data();
34097       return *this;
34098     }
34099 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34100 
34101 
operator VkResolveImageInfo2KHR const&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34102     operator VkResolveImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
34103     {
34104       return *reinterpret_cast<const VkResolveImageInfo2KHR*>( this );
34105     }
34106 
operator VkResolveImageInfo2KHR&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34107     operator VkResolveImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
34108     {
34109       return *reinterpret_cast<VkResolveImageInfo2KHR*>( this );
34110     }
34111 
34112 
34113 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34114     auto operator<=>( ResolveImageInfo2KHR const& ) const = default;
34115 #else
operator ==VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34116     bool operator==( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34117     {
34118       return ( sType == rhs.sType )
34119           && ( pNext == rhs.pNext )
34120           && ( srcImage == rhs.srcImage )
34121           && ( srcImageLayout == rhs.srcImageLayout )
34122           && ( dstImage == rhs.dstImage )
34123           && ( dstImageLayout == rhs.dstImageLayout )
34124           && ( regionCount == rhs.regionCount )
34125           && ( pRegions == rhs.pRegions );
34126     }
34127 
operator !=VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34128     bool operator!=( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34129     {
34130       return !operator==( rhs );
34131     }
34132 #endif
34133 
34134 
34135 
34136   public:
34137     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2KHR;
34138     const void* pNext = {};
34139     VULKAN_HPP_NAMESPACE::Image srcImage = {};
34140     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
34141     VULKAN_HPP_NAMESPACE::Image dstImage = {};
34142     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
34143     uint32_t regionCount = {};
34144     const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions = {};
34145 
34146   };
34147   static_assert( sizeof( ResolveImageInfo2KHR ) == sizeof( VkResolveImageInfo2KHR ), "struct and wrapper have different size!" );
34148   static_assert( std::is_standard_layout<ResolveImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
34149 
34150   template <>
34151   struct CppType<StructureType, StructureType::eResolveImageInfo2KHR>
34152   {
34153     using Type = ResolveImageInfo2KHR;
34154   };
34155 
34156   struct PerformanceMarkerInfoINTEL
34157   {
34158     static const bool allowDuplicate = false;
34159     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
34160 
34161 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34162     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL(uint64_t marker_ = {}) VULKAN_HPP_NOEXCEPT
34163     : marker( marker_ )
34164     {}
34165 
34166     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34167 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34168     PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34169     {
34170       *this = rhs;
34171     }
34172 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34173 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34174     PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34175     {
34176       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>( &rhs );
34177       return *this;
34178     }
34179 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34180     PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34181     {
34182       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceMarkerInfoINTEL ) );
34183       return *this;
34184     }
34185 
setPNextVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34186     PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34187     {
34188       pNext = pNext_;
34189       return *this;
34190     }
34191 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34192     PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
34193     {
34194       marker = marker_;
34195       return *this;
34196     }
34197 
34198 
operator VkPerformanceMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34199     operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34200     {
34201       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
34202     }
34203 
operator VkPerformanceMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34204     operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
34205     {
34206       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
34207     }
34208 
34209 
34210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34211     auto operator<=>( PerformanceMarkerInfoINTEL const& ) const = default;
34212 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34213     bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34214     {
34215       return ( sType == rhs.sType )
34216           && ( pNext == rhs.pNext )
34217           && ( marker == rhs.marker );
34218     }
34219 
operator !=VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34220     bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34221     {
34222       return !operator==( rhs );
34223     }
34224 #endif
34225 
34226 
34227 
34228   public:
34229     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
34230     const void* pNext = {};
34231     uint64_t marker = {};
34232 
34233   };
34234   static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" );
34235   static_assert( std::is_standard_layout<PerformanceMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34236 
34237   template <>
34238   struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
34239   {
34240     using Type = PerformanceMarkerInfoINTEL;
34241   };
34242 
34243   struct PerformanceOverrideInfoINTEL
34244   {
34245     static const bool allowDuplicate = false;
34246     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
34247 
34248 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34249     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
34250     : type( type_ ), enable( enable_ ), parameter( parameter_ )
34251     {}
34252 
34253     VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34254 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34255     PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34256     {
34257       *this = rhs;
34258     }
34259 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34260 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34261     PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34262     {
34263       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>( &rhs );
34264       return *this;
34265     }
34266 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34267     PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34268     {
34269       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceOverrideInfoINTEL ) );
34270       return *this;
34271     }
34272 
setPNextVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34273     PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34274     {
34275       pNext = pNext_;
34276       return *this;
34277     }
34278 
setTypeVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34279     PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
34280     {
34281       type = type_;
34282       return *this;
34283     }
34284 
setEnableVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34285     PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
34286     {
34287       enable = enable_;
34288       return *this;
34289     }
34290 
setParameterVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34291     PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
34292     {
34293       parameter = parameter_;
34294       return *this;
34295     }
34296 
34297 
operator VkPerformanceOverrideInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34298     operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34299     {
34300       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
34301     }
34302 
operator VkPerformanceOverrideInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34303     operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
34304     {
34305       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
34306     }
34307 
34308 
34309 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34310     auto operator<=>( PerformanceOverrideInfoINTEL const& ) const = default;
34311 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34312     bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34313     {
34314       return ( sType == rhs.sType )
34315           && ( pNext == rhs.pNext )
34316           && ( type == rhs.type )
34317           && ( enable == rhs.enable )
34318           && ( parameter == rhs.parameter );
34319     }
34320 
operator !=VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34321     bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34322     {
34323       return !operator==( rhs );
34324     }
34325 #endif
34326 
34327 
34328 
34329   public:
34330     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
34331     const void* pNext = {};
34332     VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
34333     VULKAN_HPP_NAMESPACE::Bool32 enable = {};
34334     uint64_t parameter = {};
34335 
34336   };
34337   static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" );
34338   static_assert( std::is_standard_layout<PerformanceOverrideInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34339 
34340   template <>
34341   struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
34342   {
34343     using Type = PerformanceOverrideInfoINTEL;
34344   };
34345 
34346   struct PerformanceStreamMarkerInfoINTEL
34347   {
34348     static const bool allowDuplicate = false;
34349     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
34350 
34351 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34352     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL(uint32_t marker_ = {}) VULKAN_HPP_NOEXCEPT
34353     : marker( marker_ )
34354     {}
34355 
34356     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34357 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34358     PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34359     {
34360       *this = rhs;
34361     }
34362 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34363 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34364     PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34365     {
34366       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>( &rhs );
34367       return *this;
34368     }
34369 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34370     PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34371     {
34372       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceStreamMarkerInfoINTEL ) );
34373       return *this;
34374     }
34375 
setPNextVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34376     PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34377     {
34378       pNext = pNext_;
34379       return *this;
34380     }
34381 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34382     PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
34383     {
34384       marker = marker_;
34385       return *this;
34386     }
34387 
34388 
operator VkPerformanceStreamMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34389     operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34390     {
34391       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
34392     }
34393 
operator VkPerformanceStreamMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34394     operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
34395     {
34396       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
34397     }
34398 
34399 
34400 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34401     auto operator<=>( PerformanceStreamMarkerInfoINTEL const& ) const = default;
34402 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34403     bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34404     {
34405       return ( sType == rhs.sType )
34406           && ( pNext == rhs.pNext )
34407           && ( marker == rhs.marker );
34408     }
34409 
operator !=VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34410     bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34411     {
34412       return !operator==( rhs );
34413     }
34414 #endif
34415 
34416 
34417 
34418   public:
34419     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
34420     const void* pNext = {};
34421     uint32_t marker = {};
34422 
34423   };
34424   static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" );
34425   static_assert( std::is_standard_layout<PerformanceStreamMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34426 
34427   template <>
34428   struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
34429   {
34430     using Type = PerformanceStreamMarkerInfoINTEL;
34431   };
34432 
34433   struct Viewport
34434   {
34435 
34436 
34437 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportVULKAN_HPP_NAMESPACE::Viewport34438     VULKAN_HPP_CONSTEXPR Viewport(float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {}) VULKAN_HPP_NOEXCEPT
34439     : x( x_ ), y( y_ ), width( width_ ), height( height_ ), minDepth( minDepth_ ), maxDepth( maxDepth_ )
34440     {}
34441 
34442     VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34443 
ViewportVULKAN_HPP_NAMESPACE::Viewport34444     Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
34445     {
34446       *this = rhs;
34447     }
34448 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34449 
operator =VULKAN_HPP_NAMESPACE::Viewport34450     Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
34451     {
34452       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>( &rhs );
34453       return *this;
34454     }
34455 
operator =VULKAN_HPP_NAMESPACE::Viewport34456     Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT
34457     {
34458       memcpy( static_cast<void *>( this ), &rhs, sizeof( Viewport ) );
34459       return *this;
34460     }
34461 
setXVULKAN_HPP_NAMESPACE::Viewport34462     Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
34463     {
34464       x = x_;
34465       return *this;
34466     }
34467 
setYVULKAN_HPP_NAMESPACE::Viewport34468     Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
34469     {
34470       y = y_;
34471       return *this;
34472     }
34473 
setWidthVULKAN_HPP_NAMESPACE::Viewport34474     Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
34475     {
34476       width = width_;
34477       return *this;
34478     }
34479 
setHeightVULKAN_HPP_NAMESPACE::Viewport34480     Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
34481     {
34482       height = height_;
34483       return *this;
34484     }
34485 
setMinDepthVULKAN_HPP_NAMESPACE::Viewport34486     Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
34487     {
34488       minDepth = minDepth_;
34489       return *this;
34490     }
34491 
setMaxDepthVULKAN_HPP_NAMESPACE::Viewport34492     Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
34493     {
34494       maxDepth = maxDepth_;
34495       return *this;
34496     }
34497 
34498 
operator VkViewport const&VULKAN_HPP_NAMESPACE::Viewport34499     operator VkViewport const&() const VULKAN_HPP_NOEXCEPT
34500     {
34501       return *reinterpret_cast<const VkViewport*>( this );
34502     }
34503 
operator VkViewport&VULKAN_HPP_NAMESPACE::Viewport34504     operator VkViewport &() VULKAN_HPP_NOEXCEPT
34505     {
34506       return *reinterpret_cast<VkViewport*>( this );
34507     }
34508 
34509 
34510 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34511     auto operator<=>( Viewport const& ) const = default;
34512 #else
operator ==VULKAN_HPP_NAMESPACE::Viewport34513     bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
34514     {
34515       return ( x == rhs.x )
34516           && ( y == rhs.y )
34517           && ( width == rhs.width )
34518           && ( height == rhs.height )
34519           && ( minDepth == rhs.minDepth )
34520           && ( maxDepth == rhs.maxDepth );
34521     }
34522 
operator !=VULKAN_HPP_NAMESPACE::Viewport34523     bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
34524     {
34525       return !operator==( rhs );
34526     }
34527 #endif
34528 
34529 
34530 
34531   public:
34532     float x = {};
34533     float y = {};
34534     float width = {};
34535     float height = {};
34536     float minDepth = {};
34537     float maxDepth = {};
34538 
34539   };
34540   static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" );
34541   static_assert( std::is_standard_layout<Viewport>::value, "struct wrapper is not a standard layout!" );
34542 
34543   struct ShadingRatePaletteNV
34544   {
34545 
34546 
34547 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34548     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV(uint32_t shadingRatePaletteEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {}) VULKAN_HPP_NOEXCEPT
34549     : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ), pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
34550     {}
34551 
34552     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34553 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34554     ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34555     {
34556       *this = rhs;
34557     }
34558 
34559 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34560     ShadingRatePaletteNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
34561     : shadingRatePaletteEntryCount( static_cast<uint32_t>( shadingRatePaletteEntries_.size() ) ), pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() )
34562     {}
34563 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34564 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34565 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34566     ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34567     {
34568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>( &rhs );
34569       return *this;
34570     }
34571 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34572     ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34573     {
34574       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShadingRatePaletteNV ) );
34575       return *this;
34576     }
34577 
setShadingRatePaletteEntryCountVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34578     ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
34579     {
34580       shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
34581       return *this;
34582     }
34583 
setPShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34584     ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
34585     {
34586       pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
34587       return *this;
34588     }
34589 
34590 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34591     ShadingRatePaletteNV & setShadingRatePaletteEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
34592     {
34593       shadingRatePaletteEntryCount = static_cast<uint32_t>( shadingRatePaletteEntries_.size() );
34594       pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
34595       return *this;
34596     }
34597 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34598 
34599 
operator VkShadingRatePaletteNV const&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34600     operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT
34601     {
34602       return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
34603     }
34604 
operator VkShadingRatePaletteNV&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34605     operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
34606     {
34607       return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
34608     }
34609 
34610 
34611 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34612     auto operator<=>( ShadingRatePaletteNV const& ) const = default;
34613 #else
operator ==VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34614     bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34615     {
34616       return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
34617           && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
34618     }
34619 
operator !=VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34620     bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34621     {
34622       return !operator==( rhs );
34623     }
34624 #endif
34625 
34626 
34627 
34628   public:
34629     uint32_t shadingRatePaletteEntryCount = {};
34630     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {};
34631 
34632   };
34633   static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" );
34634   static_assert( std::is_standard_layout<ShadingRatePaletteNV>::value, "struct wrapper is not a standard layout!" );
34635 
34636   struct ViewportWScalingNV
34637   {
34638 
34639 
34640 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV34641     VULKAN_HPP_CONSTEXPR ViewportWScalingNV(float xcoeff_ = {}, float ycoeff_ = {}) VULKAN_HPP_NOEXCEPT
34642     : xcoeff( xcoeff_ ), ycoeff( ycoeff_ )
34643     {}
34644 
34645     VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34646 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV34647     ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34648     {
34649       *this = rhs;
34650     }
34651 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34652 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV34653     ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34654     {
34655       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>( &rhs );
34656       return *this;
34657     }
34658 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV34659     ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34660     {
34661       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViewportWScalingNV ) );
34662       return *this;
34663     }
34664 
setXcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV34665     ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
34666     {
34667       xcoeff = xcoeff_;
34668       return *this;
34669     }
34670 
setYcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV34671     ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
34672     {
34673       ycoeff = ycoeff_;
34674       return *this;
34675     }
34676 
34677 
operator VkViewportWScalingNV const&VULKAN_HPP_NAMESPACE::ViewportWScalingNV34678     operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT
34679     {
34680       return *reinterpret_cast<const VkViewportWScalingNV*>( this );
34681     }
34682 
operator VkViewportWScalingNV&VULKAN_HPP_NAMESPACE::ViewportWScalingNV34683     operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
34684     {
34685       return *reinterpret_cast<VkViewportWScalingNV*>( this );
34686     }
34687 
34688 
34689 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34690     auto operator<=>( ViewportWScalingNV const& ) const = default;
34691 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportWScalingNV34692     bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34693     {
34694       return ( xcoeff == rhs.xcoeff )
34695           && ( ycoeff == rhs.ycoeff );
34696     }
34697 
operator !=VULKAN_HPP_NAMESPACE::ViewportWScalingNV34698     bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34699     {
34700       return !operator==( rhs );
34701     }
34702 #endif
34703 
34704 
34705 
34706   public:
34707     float xcoeff = {};
34708     float ycoeff = {};
34709 
34710   };
34711   static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" );
34712   static_assert( std::is_standard_layout<ViewportWScalingNV>::value, "struct wrapper is not a standard layout!" );
34713 
34714 #ifdef VK_ENABLE_BETA_EXTENSIONS
34715   struct StridedBufferRegionKHR
34716   {
34717 
34718 
34719 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34720     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
34721     : buffer( buffer_ ), offset( offset_ ), stride( stride_ ), size( size_ )
34722     {}
34723 
34724     VULKAN_HPP_CONSTEXPR StridedBufferRegionKHR( StridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34725 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34726     StridedBufferRegionKHR( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34727     {
34728       *this = rhs;
34729     }
34730 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34731     explicit StridedBufferRegionKHR( IndirectCommandsStreamNV const& indirectCommandsStreamNV, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} )
34732       : buffer( indirectCommandsStreamNV.buffer )
34733       , offset( indirectCommandsStreamNV.offset )
34734       , stride( stride_ )
34735       , size( size_ )
34736     {}
34737 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34738 
operator =VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34739     StridedBufferRegionKHR & operator=( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34740     {
34741       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR const *>( &rhs );
34742       return *this;
34743     }
34744 
operator =VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34745     StridedBufferRegionKHR & operator=( StridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34746     {
34747       memcpy( static_cast<void *>( this ), &rhs, sizeof( StridedBufferRegionKHR ) );
34748       return *this;
34749     }
34750 
setBufferVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34751     StridedBufferRegionKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
34752     {
34753       buffer = buffer_;
34754       return *this;
34755     }
34756 
setOffsetVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34757     StridedBufferRegionKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
34758     {
34759       offset = offset_;
34760       return *this;
34761     }
34762 
setStrideVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34763     StridedBufferRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
34764     {
34765       stride = stride_;
34766       return *this;
34767     }
34768 
setSizeVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34769     StridedBufferRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
34770     {
34771       size = size_;
34772       return *this;
34773     }
34774 
34775 
operator VkStridedBufferRegionKHR const&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34776     operator VkStridedBufferRegionKHR const&() const VULKAN_HPP_NOEXCEPT
34777     {
34778       return *reinterpret_cast<const VkStridedBufferRegionKHR*>( this );
34779     }
34780 
operator VkStridedBufferRegionKHR&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34781     operator VkStridedBufferRegionKHR &() VULKAN_HPP_NOEXCEPT
34782     {
34783       return *reinterpret_cast<VkStridedBufferRegionKHR*>( this );
34784     }
34785 
34786 
34787 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34788     auto operator<=>( StridedBufferRegionKHR const& ) const = default;
34789 #else
operator ==VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34790     bool operator==( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34791     {
34792       return ( buffer == rhs.buffer )
34793           && ( offset == rhs.offset )
34794           && ( stride == rhs.stride )
34795           && ( size == rhs.size );
34796     }
34797 
operator !=VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34798     bool operator!=( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34799     {
34800       return !operator==( rhs );
34801     }
34802 #endif
34803 
34804 
34805 
34806   public:
34807     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
34808     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
34809     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
34810     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
34811 
34812   };
34813   static_assert( sizeof( StridedBufferRegionKHR ) == sizeof( VkStridedBufferRegionKHR ), "struct and wrapper have different size!" );
34814   static_assert( std::is_standard_layout<StridedBufferRegionKHR>::value, "struct wrapper is not a standard layout!" );
34815 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
34816 
34817   class CommandBuffer
34818   {
34819   public:
34820     using CType = VkCommandBuffer;
34821 
34822     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer;
34823     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
34824 
34825   public:
CommandBuffer()34826     VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT
34827       : m_commandBuffer(VK_NULL_HANDLE)
34828     {}
34829 
CommandBuffer(std::nullptr_t)34830     VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34831       : m_commandBuffer(VK_NULL_HANDLE)
34832     {}
34833 
CommandBuffer(VkCommandBuffer commandBuffer)34834     VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT
34835       : m_commandBuffer( commandBuffer )
34836     {}
34837 
34838 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandBuffer commandBuffer)34839     CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT
34840     {
34841       m_commandBuffer = commandBuffer;
34842       return *this;
34843     }
34844 #endif
34845 
operator =(std::nullptr_t)34846     CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
34847     {
34848       m_commandBuffer = VK_NULL_HANDLE;
34849       return *this;
34850     }
34851 
34852 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34853     auto operator<=>( CommandBuffer const& ) const = default;
34854 #else
operator ==(CommandBuffer const & rhs) const34855     bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
34856     {
34857       return m_commandBuffer == rhs.m_commandBuffer;
34858     }
34859 
operator !=(CommandBuffer const & rhs) const34860     bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
34861     {
34862       return m_commandBuffer != rhs.m_commandBuffer;
34863     }
34864 
operator <(CommandBuffer const & rhs) const34865     bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
34866     {
34867       return m_commandBuffer < rhs.m_commandBuffer;
34868     }
34869 #endif
34870 
34871 
34872     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34873     VULKAN_HPP_NODISCARD Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34875     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34876     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
34877 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34878 
34879 
34880     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34881     void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34882 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34883     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34884     void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34885 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34886 
34887 
34888     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34889     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34890 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34891     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34892     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34893 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34894 
34895 
34896     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34897     void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34898 
34899 
34900     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34901     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;
34902 
34903 
34904     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34905     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;
34906 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34907     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34908     void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34909 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34910 
34911 
34912     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34913     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;
34914 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34915     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34916     void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34917 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34918 
34919     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34920     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;
34921 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34922     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34923     void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34924 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34925 
34926 
34927     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34928     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34930     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34931     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;
34932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34933 
34934 
34935     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34936     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;
34937 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34938     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34939     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;
34940 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34941 
34942 
34943     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34944     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;
34945 
34946 
34947     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34948     void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34949 
34950 
34951     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34952     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;
34953 
34954 
34955     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34956     void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34957 
34958 
34959     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34960     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 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34962     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34963     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;
34964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34965 
34966 
34967     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34968     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;
34969 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34970     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34971     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;
34972 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34973 
34974 
34975     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34976     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 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34977 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34978     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34979     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;
34980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34981 
34982 
34983     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34984     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;
34985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34986     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34987     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;
34988 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34989 
34990 
34991     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34992     void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34993 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
34994     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
34995     void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
34996 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
34997 
34998 
34999 #ifdef VK_ENABLE_BETA_EXTENSIONS
35000     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35001     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;
35002 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35003     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35004     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;
35005 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35006 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35007 
35008 
35009 #ifdef VK_ENABLE_BETA_EXTENSIONS
35010     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35011     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;
35012 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35013     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35014     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;
35015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35016 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35017 
35018 
35019     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35020     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;
35021 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35022     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35023     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;
35024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35025 
35026 
35027     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35028     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;
35029 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35030     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35031     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;
35032 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35033 
35034 
35035     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35036     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;
35037 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35038     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35039     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;
35040 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35041 
35042 
35043     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35044     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;
35045 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35046     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35047     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;
35048 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35049 
35050 
35051 #ifdef VK_ENABLE_BETA_EXTENSIONS
35052     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35053     void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35054 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35055     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35056     void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35057 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35058 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35059 
35060 
35061     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35062     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;
35063 
35064 
35065 #ifdef VK_ENABLE_BETA_EXTENSIONS
35066     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35067     void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35068 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35069     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35070     void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35071 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35072 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35073 
35074 
35075     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35076     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;
35077 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35078     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35079     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;
35080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35081 
35082 
35083     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35084     void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35086     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35087     void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35089 
35090 
35091     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35092     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;
35093 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35094     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35095     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;
35096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35097 
35098 
35099     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35100     void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35101 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35102     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35103     void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35104 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35105 
35106 
35107     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35108     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;
35109 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35110     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35111     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;
35112 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35113 
35114 
35115     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35116     void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35118     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35119     void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35120 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35121 
35122 
35123     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35124     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;
35125 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35126     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35127     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;
35128 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35129 
35130 
35131     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35132     void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35133 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35134     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35135     void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35137 
35138 
35139 #ifdef VK_ENABLE_BETA_EXTENSIONS
35140     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35141     void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35143     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35144     void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35146 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35147 
35148 
35149     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35150     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 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35151 
35152 
35153     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35154     void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35156     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35157     void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35158 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35159 
35160 
35161     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35162     void debugMarkerEndEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35163 
35164 
35165     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35166     void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35167 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35168     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35169     void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35170 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35171 
35172 
35173     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35174     void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35175 
35176 
35177     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35178     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;
35179 
35180     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35181     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;
35182 
35183 
35184     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35185     void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35186 
35187 
35188     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35189     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;
35190 
35191 
35192     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35193     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;
35194 
35195 
35196     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35197     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;
35198 
35199 
35200     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35201     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;
35202 
35203     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35204     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;
35205 
35206     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35207     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;
35208 
35209 
35210     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35211     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;
35212 
35213 
35214     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35215     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;
35216 
35217 
35218     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35219     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;
35220 
35221     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35222     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;
35223 
35224     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35225     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;
35226 
35227 
35228     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35229     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;
35230 
35231 
35232     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35233     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;
35234 
35235 
35236     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35237     void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35238 
35239 
35240     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35241     void endConditionalRenderingEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35242 
35243 
35244     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35245     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35246 
35247 
35248     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35249     void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35250 
35251 
35252     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35253     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;
35254 
35255 
35256     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35257     void endRenderPass( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35258 
35259 
35260     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35261     void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35262 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35263     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35264     void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35265 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35266 
35267     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35268     void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35269 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35270     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35271     void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35273 
35274 
35275     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35276     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35277 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35278     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35279     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;
35280 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35281 
35282 
35283     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35284     void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35285 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35286     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35287     void executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35288 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35289 
35290 
35291     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35292     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;
35293 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35294     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35295     void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35296 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35297 
35298 
35299     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35300     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;
35301 
35302 
35303     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35304     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35306     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35307     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35309 
35310 
35311     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35312     void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35313 
35314 
35315     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35316     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;
35317 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35318     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35319     void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35320 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35321 
35322     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35323     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;
35324 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35325     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35326     void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35327 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35328 
35329 
35330     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35331     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;
35332 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35333     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35334     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;
35335 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35336 
35337 
35338     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35339     void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35340 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35341     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35342     void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35343 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35344 
35345 
35346     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35347     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;
35348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35349     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35350     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;
35351 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35352 
35353 
35354     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35355     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;
35356 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35357     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35358     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;
35359 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35360 
35361 
35362     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35363     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;
35364 
35365 
35366     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35367     void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35368 
35369 
35370     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35371     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;
35372 
35373 
35374     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35375     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;
35376 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35377     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35378     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;
35379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35380 
35381 
35382     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35383     void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, 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 resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35388 
35389 
35390     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35391     void setBlendConstants( const float blendConstants[4], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35392 
35393 
35394     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35395     void setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35396 
35397 
35398     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35399     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;
35400 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35401     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35402     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;
35403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35404 
35405 
35406     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35407     void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35408 
35409 
35410     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35411     void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35412 
35413 
35414     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35415     void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35416 
35417 
35418     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35419     void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35420 
35421 
35422     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35423     void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, 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 setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, 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 setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, 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 setDeviceMask( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35436 
35437     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35438     void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35439 
35440 
35441     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35442     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;
35443 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35444     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35445     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;
35446 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35447 
35448 
35449     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35450     void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35451 
35452 
35453     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35454     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;
35455 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35456     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35457     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;
35458 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35459 
35460 
35461     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35462     void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35463 
35464 
35465     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35466     void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35467 
35468 
35469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35470     void setLineWidth( float lineWidth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35471 
35472 
35473     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35474     VULKAN_HPP_NODISCARD Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35475 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35476     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35477     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35478 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35479 
35480 
35481     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35482     VULKAN_HPP_NODISCARD Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35483 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35484     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35485     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35486 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35487 
35488 
35489     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35490     VULKAN_HPP_NODISCARD Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35491 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35492     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35493     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35495 
35496 
35497     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35498     void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35499 
35500 
35501     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35502     void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35504     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35505     void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35506 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35507 
35508 
35509     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35510     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;
35511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35513     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;
35514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35515 
35516 
35517     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35518     void setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, 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 setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35523 
35524 
35525     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35526     void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35527 
35528 
35529     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35530     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;
35531 
35532 
35533     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35534     void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35535 
35536 
35537     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35538     void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35539 
35540 
35541     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35542     void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, 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 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;
35547 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35548     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35549     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;
35550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35551 
35552 
35553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35554     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;
35555 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35556     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35557     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;
35558 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35559 
35560 
35561     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35562     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;
35563 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35564     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35565     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;
35566 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35567 
35568 
35569     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35570     void setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35571 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35572     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35573     void setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35574 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35575 
35576 
35577 #ifdef VK_ENABLE_BETA_EXTENSIONS
35578     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35579     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;
35580 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35581     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35582     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;
35583 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35584 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35585 
35586 
35587 #ifdef VK_ENABLE_BETA_EXTENSIONS
35588     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35589     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;
35590 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35591     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35592     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;
35593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35594 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35595 
35596 
35597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35598     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;
35599 
35600 
35601     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35602     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;
35603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35604     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35605     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;
35606 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35607 
35608 
35609     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35610     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;
35611 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35613     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;
35614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35615 
35616 
35617 #ifdef VK_ENABLE_BETA_EXTENSIONS
35618     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35619     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;
35620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35621     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35622     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;
35623 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35624 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35625 
35626     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35627     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;
35628 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35629     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35630     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;
35631 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35632 
35633 
35634     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35635     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;
35636 
35637 
35638     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35639     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;
35640 
35641 
35642 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
35643     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35644     VULKAN_HPP_NODISCARD Result end( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35645 #else
35646     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35647     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35648 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35649 
35650 
35651 
35652 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
35653     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35654     VULKAN_HPP_NODISCARD Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35655 #else
35656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35657     typename ResultValueType<void>::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35658 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35659 
35660 
operator VkCommandBuffer() const35661     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
35662     {
35663       return m_commandBuffer;
35664     }
35665 
operator bool() const35666     explicit operator bool() const VULKAN_HPP_NOEXCEPT
35667     {
35668       return m_commandBuffer != VK_NULL_HANDLE;
35669     }
35670 
operator !() const35671     bool operator!() const VULKAN_HPP_NOEXCEPT
35672     {
35673       return m_commandBuffer == VK_NULL_HANDLE;
35674     }
35675 
35676   private:
35677     VkCommandBuffer m_commandBuffer;
35678   };
35679   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
35680 
35681   template <>
35682   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandBuffer>
35683   {
35684     using type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35685   };
35686 
35687   template <>
35688   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer>
35689   {
35690     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35691   };
35692 
35693 
35694   template <>
35695   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer>
35696   {
35697     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35698   };
35699 
35700 
35701   template <>
35702   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandBuffer>
35703   {
35704     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
35705   };
35706 
35707   struct MemoryAllocateInfo
35708   {
35709     static const bool allowDuplicate = false;
35710     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
35711 
35712 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35713     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeIndex_ = {}) VULKAN_HPP_NOEXCEPT
35714     : allocationSize( allocationSize_ ), memoryTypeIndex( memoryTypeIndex_ )
35715     {}
35716 
35717     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35718 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35719     MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35720     {
35721       *this = rhs;
35722     }
35723 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35724 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35725     MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35726     {
35727       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>( &rhs );
35728       return *this;
35729     }
35730 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35731     MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35732     {
35733       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryAllocateInfo ) );
35734       return *this;
35735     }
35736 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35737     MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35738     {
35739       pNext = pNext_;
35740       return *this;
35741     }
35742 
setAllocationSizeVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35743     MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
35744     {
35745       allocationSize = allocationSize_;
35746       return *this;
35747     }
35748 
setMemoryTypeIndexVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35749     MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
35750     {
35751       memoryTypeIndex = memoryTypeIndex_;
35752       return *this;
35753     }
35754 
35755 
operator VkMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35756     operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
35757     {
35758       return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
35759     }
35760 
operator VkMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35761     operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
35762     {
35763       return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
35764     }
35765 
35766 
35767 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35768     auto operator<=>( MemoryAllocateInfo const& ) const = default;
35769 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35770     bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35771     {
35772       return ( sType == rhs.sType )
35773           && ( pNext == rhs.pNext )
35774           && ( allocationSize == rhs.allocationSize )
35775           && ( memoryTypeIndex == rhs.memoryTypeIndex );
35776     }
35777 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35778     bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35779     {
35780       return !operator==( rhs );
35781     }
35782 #endif
35783 
35784 
35785 
35786   public:
35787     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
35788     const void* pNext = {};
35789     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
35790     uint32_t memoryTypeIndex = {};
35791 
35792   };
35793   static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" );
35794   static_assert( std::is_standard_layout<MemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
35795 
35796   template <>
35797   struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
35798   {
35799     using Type = MemoryAllocateInfo;
35800   };
35801 
35802   class PipelineCache
35803   {
35804   public:
35805     using CType = VkPipelineCache;
35806 
35807     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache;
35808     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
35809 
35810   public:
PipelineCache()35811     VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT
35812       : m_pipelineCache(VK_NULL_HANDLE)
35813     {}
35814 
PipelineCache(std::nullptr_t)35815     VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
35816       : m_pipelineCache(VK_NULL_HANDLE)
35817     {}
35818 
PipelineCache(VkPipelineCache pipelineCache)35819     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT
35820       : m_pipelineCache( pipelineCache )
35821     {}
35822 
35823 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineCache pipelineCache)35824     PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT
35825     {
35826       m_pipelineCache = pipelineCache;
35827       return *this;
35828     }
35829 #endif
35830 
operator =(std::nullptr_t)35831     PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
35832     {
35833       m_pipelineCache = VK_NULL_HANDLE;
35834       return *this;
35835     }
35836 
35837 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35838     auto operator<=>( PipelineCache const& ) const = default;
35839 #else
operator ==(PipelineCache const & rhs) const35840     bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
35841     {
35842       return m_pipelineCache == rhs.m_pipelineCache;
35843     }
35844 
operator !=(PipelineCache const & rhs) const35845     bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
35846     {
35847       return m_pipelineCache != rhs.m_pipelineCache;
35848     }
35849 
operator <(PipelineCache const & rhs) const35850     bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
35851     {
35852       return m_pipelineCache < rhs.m_pipelineCache;
35853     }
35854 #endif
35855 
operator VkPipelineCache() const35856     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT
35857     {
35858       return m_pipelineCache;
35859     }
35860 
operator bool() const35861     explicit operator bool() const VULKAN_HPP_NOEXCEPT
35862     {
35863       return m_pipelineCache != VK_NULL_HANDLE;
35864     }
35865 
operator !() const35866     bool operator!() const VULKAN_HPP_NOEXCEPT
35867     {
35868       return m_pipelineCache == VK_NULL_HANDLE;
35869     }
35870 
35871   private:
35872     VkPipelineCache m_pipelineCache;
35873   };
35874   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
35875 
35876   template <>
35877   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineCache>
35878   {
35879     using type = VULKAN_HPP_NAMESPACE::PipelineCache;
35880   };
35881 
35882   template <>
35883   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache>
35884   {
35885     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
35886   };
35887 
35888 
35889   template <>
35890   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache>
35891   {
35892     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
35893   };
35894 
35895 
35896   template <>
35897   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineCache>
35898   {
35899     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
35900   };
35901 
35902   struct EventCreateInfo
35903   {
35904     static const bool allowDuplicate = false;
35905     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
35906 
35907 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo35908     VULKAN_HPP_CONSTEXPR EventCreateInfo(VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
35909     : flags( flags_ )
35910     {}
35911 
35912     VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35913 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo35914     EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35915     {
35916       *this = rhs;
35917     }
35918 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35919 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo35920     EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35921     {
35922       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>( &rhs );
35923       return *this;
35924     }
35925 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo35926     EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35927     {
35928       memcpy( static_cast<void *>( this ), &rhs, sizeof( EventCreateInfo ) );
35929       return *this;
35930     }
35931 
setPNextVULKAN_HPP_NAMESPACE::EventCreateInfo35932     EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35933     {
35934       pNext = pNext_;
35935       return *this;
35936     }
35937 
setFlagsVULKAN_HPP_NAMESPACE::EventCreateInfo35938     EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
35939     {
35940       flags = flags_;
35941       return *this;
35942     }
35943 
35944 
operator VkEventCreateInfo const&VULKAN_HPP_NAMESPACE::EventCreateInfo35945     operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT
35946     {
35947       return *reinterpret_cast<const VkEventCreateInfo*>( this );
35948     }
35949 
operator VkEventCreateInfo&VULKAN_HPP_NAMESPACE::EventCreateInfo35950     operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
35951     {
35952       return *reinterpret_cast<VkEventCreateInfo*>( this );
35953     }
35954 
35955 
35956 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35957     auto operator<=>( EventCreateInfo const& ) const = default;
35958 #else
operator ==VULKAN_HPP_NAMESPACE::EventCreateInfo35959     bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35960     {
35961       return ( sType == rhs.sType )
35962           && ( pNext == rhs.pNext )
35963           && ( flags == rhs.flags );
35964     }
35965 
operator !=VULKAN_HPP_NAMESPACE::EventCreateInfo35966     bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
35967     {
35968       return !operator==( rhs );
35969     }
35970 #endif
35971 
35972 
35973 
35974   public:
35975     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
35976     const void* pNext = {};
35977     VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
35978 
35979   };
35980   static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
35981   static_assert( std::is_standard_layout<EventCreateInfo>::value, "struct wrapper is not a standard layout!" );
35982 
35983   template <>
35984   struct CppType<StructureType, StructureType::eEventCreateInfo>
35985   {
35986     using Type = EventCreateInfo;
35987   };
35988 
35989   struct FenceCreateInfo
35990   {
35991     static const bool allowDuplicate = false;
35992     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
35993 
35994 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo35995     VULKAN_HPP_CONSTEXPR FenceCreateInfo(VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
35996     : flags( flags_ )
35997     {}
35998 
35999     VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36000 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo36001     FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36002     {
36003       *this = rhs;
36004     }
36005 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36006 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo36007     FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36008     {
36009       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>( &rhs );
36010       return *this;
36011     }
36012 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo36013     FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36014     {
36015       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceCreateInfo ) );
36016       return *this;
36017     }
36018 
setPNextVULKAN_HPP_NAMESPACE::FenceCreateInfo36019     FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36020     {
36021       pNext = pNext_;
36022       return *this;
36023     }
36024 
setFlagsVULKAN_HPP_NAMESPACE::FenceCreateInfo36025     FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36026     {
36027       flags = flags_;
36028       return *this;
36029     }
36030 
36031 
operator VkFenceCreateInfo const&VULKAN_HPP_NAMESPACE::FenceCreateInfo36032     operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36033     {
36034       return *reinterpret_cast<const VkFenceCreateInfo*>( this );
36035     }
36036 
operator VkFenceCreateInfo&VULKAN_HPP_NAMESPACE::FenceCreateInfo36037     operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
36038     {
36039       return *reinterpret_cast<VkFenceCreateInfo*>( this );
36040     }
36041 
36042 
36043 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36044     auto operator<=>( FenceCreateInfo const& ) const = default;
36045 #else
operator ==VULKAN_HPP_NAMESPACE::FenceCreateInfo36046     bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36047     {
36048       return ( sType == rhs.sType )
36049           && ( pNext == rhs.pNext )
36050           && ( flags == rhs.flags );
36051     }
36052 
operator !=VULKAN_HPP_NAMESPACE::FenceCreateInfo36053     bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36054     {
36055       return !operator==( rhs );
36056     }
36057 #endif
36058 
36059 
36060 
36061   public:
36062     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
36063     const void* pNext = {};
36064     VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
36065 
36066   };
36067   static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
36068   static_assert( std::is_standard_layout<FenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
36069 
36070   template <>
36071   struct CppType<StructureType, StructureType::eFenceCreateInfo>
36072   {
36073     using Type = FenceCreateInfo;
36074   };
36075 
36076   struct FramebufferCreateInfo
36077   {
36078     static const bool allowDuplicate = false;
36079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
36080 
36081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36082     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
36083     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), width( width_ ), height( height_ ), layers( layers_ )
36084     {}
36085 
36086     VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36087 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36088     FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36089     {
36090       *this = rhs;
36091     }
36092 
36093 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36094     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_ = {} )
36095     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), width( width_ ), height( height_ ), layers( layers_ )
36096     {}
36097 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36098 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36099 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36100     FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36101     {
36102       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>( &rhs );
36103       return *this;
36104     }
36105 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36106     FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36107     {
36108       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferCreateInfo ) );
36109       return *this;
36110     }
36111 
setPNextVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36112     FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36113     {
36114       pNext = pNext_;
36115       return *this;
36116     }
36117 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36118     FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36119     {
36120       flags = flags_;
36121       return *this;
36122     }
36123 
setRenderPassVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36124     FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
36125     {
36126       renderPass = renderPass_;
36127       return *this;
36128     }
36129 
setAttachmentCountVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36130     FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
36131     {
36132       attachmentCount = attachmentCount_;
36133       return *this;
36134     }
36135 
setPAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36136     FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
36137     {
36138       pAttachments = pAttachments_;
36139       return *this;
36140     }
36141 
36142 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36143     FramebufferCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
36144     {
36145       attachmentCount = static_cast<uint32_t>( attachments_.size() );
36146       pAttachments = attachments_.data();
36147       return *this;
36148     }
36149 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36150 
setWidthVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36151     FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
36152     {
36153       width = width_;
36154       return *this;
36155     }
36156 
setHeightVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36157     FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
36158     {
36159       height = height_;
36160       return *this;
36161     }
36162 
setLayersVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36163     FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
36164     {
36165       layers = layers_;
36166       return *this;
36167     }
36168 
36169 
operator VkFramebufferCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36170     operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36171     {
36172       return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
36173     }
36174 
operator VkFramebufferCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36175     operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
36176     {
36177       return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
36178     }
36179 
36180 
36181 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36182     auto operator<=>( FramebufferCreateInfo const& ) const = default;
36183 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36184     bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36185     {
36186       return ( sType == rhs.sType )
36187           && ( pNext == rhs.pNext )
36188           && ( flags == rhs.flags )
36189           && ( renderPass == rhs.renderPass )
36190           && ( attachmentCount == rhs.attachmentCount )
36191           && ( pAttachments == rhs.pAttachments )
36192           && ( width == rhs.width )
36193           && ( height == rhs.height )
36194           && ( layers == rhs.layers );
36195     }
36196 
operator !=VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36197     bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36198     {
36199       return !operator==( rhs );
36200     }
36201 #endif
36202 
36203 
36204 
36205   public:
36206     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
36207     const void* pNext = {};
36208     VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
36209     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
36210     uint32_t attachmentCount = {};
36211     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
36212     uint32_t width = {};
36213     uint32_t height = {};
36214     uint32_t layers = {};
36215 
36216   };
36217   static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" );
36218   static_assert( std::is_standard_layout<FramebufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
36219 
36220   template <>
36221   struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
36222   {
36223     using Type = FramebufferCreateInfo;
36224   };
36225 
36226   struct VertexInputBindingDescription
36227   {
36228 
36229 
36230 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36231     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex) VULKAN_HPP_NOEXCEPT
36232     : binding( binding_ ), stride( stride_ ), inputRate( inputRate_ )
36233     {}
36234 
36235     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36236 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36237     VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36238     {
36239       *this = rhs;
36240     }
36241 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36242 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36243     VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36244     {
36245       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>( &rhs );
36246       return *this;
36247     }
36248 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36249     VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36250     {
36251       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputBindingDescription ) );
36252       return *this;
36253     }
36254 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36255     VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36256     {
36257       binding = binding_;
36258       return *this;
36259     }
36260 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36261     VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
36262     {
36263       stride = stride_;
36264       return *this;
36265     }
36266 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36267     VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
36268     {
36269       inputRate = inputRate_;
36270       return *this;
36271     }
36272 
36273 
operator VkVertexInputBindingDescription const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36274     operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT
36275     {
36276       return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
36277     }
36278 
operator VkVertexInputBindingDescription&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36279     operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
36280     {
36281       return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
36282     }
36283 
36284 
36285 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36286     auto operator<=>( VertexInputBindingDescription const& ) const = default;
36287 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36288     bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36289     {
36290       return ( binding == rhs.binding )
36291           && ( stride == rhs.stride )
36292           && ( inputRate == rhs.inputRate );
36293     }
36294 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36295     bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36296     {
36297       return !operator==( rhs );
36298     }
36299 #endif
36300 
36301 
36302 
36303   public:
36304     uint32_t binding = {};
36305     uint32_t stride = {};
36306     VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
36307 
36308   };
36309   static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" );
36310   static_assert( std::is_standard_layout<VertexInputBindingDescription>::value, "struct wrapper is not a standard layout!" );
36311 
36312   struct VertexInputAttributeDescription
36313   {
36314 
36315 
36316 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36317     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
36318     : location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ )
36319     {}
36320 
36321     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36322 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36323     VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36324     {
36325       *this = rhs;
36326     }
36327 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36328 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36329     VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36330     {
36331       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>( &rhs );
36332       return *this;
36333     }
36334 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36335     VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36336     {
36337       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputAttributeDescription ) );
36338       return *this;
36339     }
36340 
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36341     VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
36342     {
36343       location = location_;
36344       return *this;
36345     }
36346 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36347     VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36348     {
36349       binding = binding_;
36350       return *this;
36351     }
36352 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36353     VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
36354     {
36355       format = format_;
36356       return *this;
36357     }
36358 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36359     VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
36360     {
36361       offset = offset_;
36362       return *this;
36363     }
36364 
36365 
operator VkVertexInputAttributeDescription const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36366     operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT
36367     {
36368       return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
36369     }
36370 
operator VkVertexInputAttributeDescription&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36371     operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
36372     {
36373       return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
36374     }
36375 
36376 
36377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36378     auto operator<=>( VertexInputAttributeDescription const& ) const = default;
36379 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36380     bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36381     {
36382       return ( location == rhs.location )
36383           && ( binding == rhs.binding )
36384           && ( format == rhs.format )
36385           && ( offset == rhs.offset );
36386     }
36387 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36388     bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36389     {
36390       return !operator==( rhs );
36391     }
36392 #endif
36393 
36394 
36395 
36396   public:
36397     uint32_t location = {};
36398     uint32_t binding = {};
36399     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
36400     uint32_t offset = {};
36401 
36402   };
36403   static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" );
36404   static_assert( std::is_standard_layout<VertexInputAttributeDescription>::value, "struct wrapper is not a standard layout!" );
36405 
36406   struct PipelineVertexInputStateCreateInfo
36407   {
36408     static const bool allowDuplicate = false;
36409     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
36410 
36411 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36412     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
36413     : flags( flags_ ), vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ), pVertexBindingDescriptions( pVertexBindingDescriptions_ ), vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ ), pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
36414     {}
36415 
36416     VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36417 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36418     PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36419     {
36420       *this = rhs;
36421     }
36422 
36423 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36424     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_ = {} )
36425     : flags( flags_ ), vertexBindingDescriptionCount( static_cast<uint32_t>( vertexBindingDescriptions_.size() ) ), pVertexBindingDescriptions( vertexBindingDescriptions_.data() ), vertexAttributeDescriptionCount( static_cast<uint32_t>( vertexAttributeDescriptions_.size() ) ), pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() )
36426     {}
36427 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36428 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36429 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36430     PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36431     {
36432       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>( &rhs );
36433       return *this;
36434     }
36435 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36436     PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36437     {
36438       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineVertexInputStateCreateInfo ) );
36439       return *this;
36440     }
36441 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36442     PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36443     {
36444       pNext = pNext_;
36445       return *this;
36446     }
36447 
setFlagsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36448     PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36449     {
36450       flags = flags_;
36451       return *this;
36452     }
36453 
setVertexBindingDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36454     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36455     {
36456       vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
36457       return *this;
36458     }
36459 
setPVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36460     PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36461     {
36462       pVertexBindingDescriptions = pVertexBindingDescriptions_;
36463       return *this;
36464     }
36465 
36466 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36467     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36468     {
36469       vertexBindingDescriptionCount = static_cast<uint32_t>( vertexBindingDescriptions_.size() );
36470       pVertexBindingDescriptions = vertexBindingDescriptions_.data();
36471       return *this;
36472     }
36473 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36474 
setVertexAttributeDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36475     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36476     {
36477       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
36478       return *this;
36479     }
36480 
setPVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36481     PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36482     {
36483       pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
36484       return *this;
36485     }
36486 
36487 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36488     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36489     {
36490       vertexAttributeDescriptionCount = static_cast<uint32_t>( vertexAttributeDescriptions_.size() );
36491       pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
36492       return *this;
36493     }
36494 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36495 
36496 
operator VkPipelineVertexInputStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36497     operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36498     {
36499       return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
36500     }
36501 
operator VkPipelineVertexInputStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36502     operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36503     {
36504       return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
36505     }
36506 
36507 
36508 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36509     auto operator<=>( PipelineVertexInputStateCreateInfo const& ) const = default;
36510 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36511     bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36512     {
36513       return ( sType == rhs.sType )
36514           && ( pNext == rhs.pNext )
36515           && ( flags == rhs.flags )
36516           && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
36517           && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
36518           && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
36519           && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
36520     }
36521 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36522     bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36523     {
36524       return !operator==( rhs );
36525     }
36526 #endif
36527 
36528 
36529 
36530   public:
36531     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
36532     const void* pNext = {};
36533     VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
36534     uint32_t vertexBindingDescriptionCount = {};
36535     const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {};
36536     uint32_t vertexAttributeDescriptionCount = {};
36537     const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {};
36538 
36539   };
36540   static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" );
36541   static_assert( std::is_standard_layout<PipelineVertexInputStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36542 
36543   template <>
36544   struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
36545   {
36546     using Type = PipelineVertexInputStateCreateInfo;
36547   };
36548 
36549   struct PipelineInputAssemblyStateCreateInfo
36550   {
36551     static const bool allowDuplicate = false;
36552     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
36553 
36554 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36555     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
36556     : flags( flags_ ), topology( topology_ ), primitiveRestartEnable( primitiveRestartEnable_ )
36557     {}
36558 
36559     VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36560 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36561     PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36562     {
36563       *this = rhs;
36564     }
36565 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36566 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36567     PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36568     {
36569       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>( &rhs );
36570       return *this;
36571     }
36572 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36573     PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36574     {
36575       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineInputAssemblyStateCreateInfo ) );
36576       return *this;
36577     }
36578 
setPNextVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36579     PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36580     {
36581       pNext = pNext_;
36582       return *this;
36583     }
36584 
setFlagsVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36585     PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36586     {
36587       flags = flags_;
36588       return *this;
36589     }
36590 
setTopologyVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36591     PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
36592     {
36593       topology = topology_;
36594       return *this;
36595     }
36596 
setPrimitiveRestartEnableVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36597     PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
36598     {
36599       primitiveRestartEnable = primitiveRestartEnable_;
36600       return *this;
36601     }
36602 
36603 
operator VkPipelineInputAssemblyStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36604     operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36605     {
36606       return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
36607     }
36608 
operator VkPipelineInputAssemblyStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36609     operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36610     {
36611       return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
36612     }
36613 
36614 
36615 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36616     auto operator<=>( PipelineInputAssemblyStateCreateInfo const& ) const = default;
36617 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36618     bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36619     {
36620       return ( sType == rhs.sType )
36621           && ( pNext == rhs.pNext )
36622           && ( flags == rhs.flags )
36623           && ( topology == rhs.topology )
36624           && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
36625     }
36626 
operator !=VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36627     bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36628     {
36629       return !operator==( rhs );
36630     }
36631 #endif
36632 
36633 
36634 
36635   public:
36636     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
36637     const void* pNext = {};
36638     VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
36639     VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
36640     VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
36641 
36642   };
36643   static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" );
36644   static_assert( std::is_standard_layout<PipelineInputAssemblyStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36645 
36646   template <>
36647   struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
36648   {
36649     using Type = PipelineInputAssemblyStateCreateInfo;
36650   };
36651 
36652   struct PipelineTessellationStateCreateInfo
36653   {
36654     static const bool allowDuplicate = false;
36655     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
36656 
36657 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36658     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, uint32_t patchControlPoints_ = {}) VULKAN_HPP_NOEXCEPT
36659     : flags( flags_ ), patchControlPoints( patchControlPoints_ )
36660     {}
36661 
36662     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36663 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36664     PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36665     {
36666       *this = rhs;
36667     }
36668 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36669 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36670     PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36671     {
36672       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>( &rhs );
36673       return *this;
36674     }
36675 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36676     PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36677     {
36678       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineTessellationStateCreateInfo ) );
36679       return *this;
36680     }
36681 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36682     PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36683     {
36684       pNext = pNext_;
36685       return *this;
36686     }
36687 
setFlagsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36688     PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36689     {
36690       flags = flags_;
36691       return *this;
36692     }
36693 
setPatchControlPointsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36694     PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
36695     {
36696       patchControlPoints = patchControlPoints_;
36697       return *this;
36698     }
36699 
36700 
operator VkPipelineTessellationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36701     operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36702     {
36703       return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
36704     }
36705 
operator VkPipelineTessellationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36706     operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36707     {
36708       return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
36709     }
36710 
36711 
36712 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36713     auto operator<=>( PipelineTessellationStateCreateInfo const& ) const = default;
36714 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36715     bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36716     {
36717       return ( sType == rhs.sType )
36718           && ( pNext == rhs.pNext )
36719           && ( flags == rhs.flags )
36720           && ( patchControlPoints == rhs.patchControlPoints );
36721     }
36722 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36723     bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36724     {
36725       return !operator==( rhs );
36726     }
36727 #endif
36728 
36729 
36730 
36731   public:
36732     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
36733     const void* pNext = {};
36734     VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
36735     uint32_t patchControlPoints = {};
36736 
36737   };
36738   static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" );
36739   static_assert( std::is_standard_layout<PipelineTessellationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36740 
36741   template <>
36742   struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
36743   {
36744     using Type = PipelineTessellationStateCreateInfo;
36745   };
36746 
36747   struct PipelineViewportStateCreateInfo
36748   {
36749     static const bool allowDuplicate = false;
36750     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
36751 
36752 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36753     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
36754     : flags( flags_ ), viewportCount( viewportCount_ ), pViewports( pViewports_ ), scissorCount( scissorCount_ ), pScissors( pScissors_ )
36755     {}
36756 
36757     VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36758 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36759     PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36760     {
36761       *this = rhs;
36762     }
36763 
36764 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36765     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_ = {} )
36766     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewports_.size() ) ), pViewports( viewports_.data() ), scissorCount( static_cast<uint32_t>( scissors_.size() ) ), pScissors( scissors_.data() )
36767     {}
36768 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36769 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36770 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36771     PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36772     {
36773       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>( &rhs );
36774       return *this;
36775     }
36776 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36777     PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36778     {
36779       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportStateCreateInfo ) );
36780       return *this;
36781     }
36782 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36783     PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36784     {
36785       pNext = pNext_;
36786       return *this;
36787     }
36788 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36789     PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36790     {
36791       flags = flags_;
36792       return *this;
36793     }
36794 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36795     PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
36796     {
36797       viewportCount = viewportCount_;
36798       return *this;
36799     }
36800 
setPViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36801     PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT
36802     {
36803       pViewports = pViewports_;
36804       return *this;
36805     }
36806 
36807 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36808     PipelineViewportStateCreateInfo & setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ ) VULKAN_HPP_NOEXCEPT
36809     {
36810       viewportCount = static_cast<uint32_t>( viewports_.size() );
36811       pViewports = viewports_.data();
36812       return *this;
36813     }
36814 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36815 
setScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36816     PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
36817     {
36818       scissorCount = scissorCount_;
36819       return *this;
36820     }
36821 
setPScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36822     PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT
36823     {
36824       pScissors = pScissors_;
36825       return *this;
36826     }
36827 
36828 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36829     PipelineViewportStateCreateInfo & setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ ) VULKAN_HPP_NOEXCEPT
36830     {
36831       scissorCount = static_cast<uint32_t>( scissors_.size() );
36832       pScissors = scissors_.data();
36833       return *this;
36834     }
36835 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36836 
36837 
operator VkPipelineViewportStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36838     operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36839     {
36840       return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
36841     }
36842 
operator VkPipelineViewportStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36843     operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36844     {
36845       return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
36846     }
36847 
36848 
36849 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36850     auto operator<=>( PipelineViewportStateCreateInfo const& ) const = default;
36851 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36852     bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36853     {
36854       return ( sType == rhs.sType )
36855           && ( pNext == rhs.pNext )
36856           && ( flags == rhs.flags )
36857           && ( viewportCount == rhs.viewportCount )
36858           && ( pViewports == rhs.pViewports )
36859           && ( scissorCount == rhs.scissorCount )
36860           && ( pScissors == rhs.pScissors );
36861     }
36862 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo36863     bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36864     {
36865       return !operator==( rhs );
36866     }
36867 #endif
36868 
36869 
36870 
36871   public:
36872     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
36873     const void* pNext = {};
36874     VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
36875     uint32_t viewportCount = {};
36876     const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {};
36877     uint32_t scissorCount = {};
36878     const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {};
36879 
36880   };
36881   static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" );
36882   static_assert( std::is_standard_layout<PipelineViewportStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36883 
36884   template <>
36885   struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
36886   {
36887     using Type = PipelineViewportStateCreateInfo;
36888   };
36889 
36890   struct PipelineRasterizationStateCreateInfo
36891   {
36892     static const bool allowDuplicate = false;
36893     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
36894 
36895 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36896     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
36897     : flags( flags_ ), depthClampEnable( depthClampEnable_ ), rasterizerDiscardEnable( rasterizerDiscardEnable_ ), polygonMode( polygonMode_ ), cullMode( cullMode_ ), frontFace( frontFace_ ), depthBiasEnable( depthBiasEnable_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ ), lineWidth( lineWidth_ )
36898     {}
36899 
36900     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36901 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36902     PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36903     {
36904       *this = rhs;
36905     }
36906 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36907 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36908     PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36909     {
36910       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>( &rhs );
36911       return *this;
36912     }
36913 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36914     PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36915     {
36916       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateCreateInfo ) );
36917       return *this;
36918     }
36919 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36920     PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36921     {
36922       pNext = pNext_;
36923       return *this;
36924     }
36925 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36926     PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36927     {
36928       flags = flags_;
36929       return *this;
36930     }
36931 
setDepthClampEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36932     PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
36933     {
36934       depthClampEnable = depthClampEnable_;
36935       return *this;
36936     }
36937 
setRasterizerDiscardEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36938     PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
36939     {
36940       rasterizerDiscardEnable = rasterizerDiscardEnable_;
36941       return *this;
36942     }
36943 
setPolygonModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36944     PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
36945     {
36946       polygonMode = polygonMode_;
36947       return *this;
36948     }
36949 
setCullModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36950     PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
36951     {
36952       cullMode = cullMode_;
36953       return *this;
36954     }
36955 
setFrontFaceVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36956     PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
36957     {
36958       frontFace = frontFace_;
36959       return *this;
36960     }
36961 
setDepthBiasEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36962     PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
36963     {
36964       depthBiasEnable = depthBiasEnable_;
36965       return *this;
36966     }
36967 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36968     PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
36969     {
36970       depthBiasConstantFactor = depthBiasConstantFactor_;
36971       return *this;
36972     }
36973 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36974     PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
36975     {
36976       depthBiasClamp = depthBiasClamp_;
36977       return *this;
36978     }
36979 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36980     PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
36981     {
36982       depthBiasSlopeFactor = depthBiasSlopeFactor_;
36983       return *this;
36984     }
36985 
setLineWidthVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36986     PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
36987     {
36988       lineWidth = lineWidth_;
36989       return *this;
36990     }
36991 
36992 
operator VkPipelineRasterizationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36993     operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36994     {
36995       return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
36996     }
36997 
operator VkPipelineRasterizationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo36998     operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36999     {
37000       return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
37001     }
37002 
37003 
37004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37005     auto operator<=>( PipelineRasterizationStateCreateInfo const& ) const = default;
37006 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37007     bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37008     {
37009       return ( sType == rhs.sType )
37010           && ( pNext == rhs.pNext )
37011           && ( flags == rhs.flags )
37012           && ( depthClampEnable == rhs.depthClampEnable )
37013           && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
37014           && ( polygonMode == rhs.polygonMode )
37015           && ( cullMode == rhs.cullMode )
37016           && ( frontFace == rhs.frontFace )
37017           && ( depthBiasEnable == rhs.depthBiasEnable )
37018           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
37019           && ( depthBiasClamp == rhs.depthBiasClamp )
37020           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
37021           && ( lineWidth == rhs.lineWidth );
37022     }
37023 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37024     bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37025     {
37026       return !operator==( rhs );
37027     }
37028 #endif
37029 
37030 
37031 
37032   public:
37033     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
37034     const void* pNext = {};
37035     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
37036     VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
37037     VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
37038     VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
37039     VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
37040     VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
37041     VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
37042     float depthBiasConstantFactor = {};
37043     float depthBiasClamp = {};
37044     float depthBiasSlopeFactor = {};
37045     float lineWidth = {};
37046 
37047   };
37048   static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" );
37049   static_assert( std::is_standard_layout<PipelineRasterizationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37050 
37051   template <>
37052   struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
37053   {
37054     using Type = PipelineRasterizationStateCreateInfo;
37055   };
37056 
37057   struct PipelineMultisampleStateCreateInfo
37058   {
37059     static const bool allowDuplicate = false;
37060     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
37061 
37062 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37063     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
37064     : flags( flags_ ), rasterizationSamples( rasterizationSamples_ ), sampleShadingEnable( sampleShadingEnable_ ), minSampleShading( minSampleShading_ ), pSampleMask( pSampleMask_ ), alphaToCoverageEnable( alphaToCoverageEnable_ ), alphaToOneEnable( alphaToOneEnable_ )
37065     {}
37066 
37067     VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37068 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37069     PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37070     {
37071       *this = rhs;
37072     }
37073 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37074 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37075     PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37076     {
37077       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>( &rhs );
37078       return *this;
37079     }
37080 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37081     PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37082     {
37083       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineMultisampleStateCreateInfo ) );
37084       return *this;
37085     }
37086 
setPNextVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37087     PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37088     {
37089       pNext = pNext_;
37090       return *this;
37091     }
37092 
setFlagsVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37093     PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37094     {
37095       flags = flags_;
37096       return *this;
37097     }
37098 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37099     PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
37100     {
37101       rasterizationSamples = rasterizationSamples_;
37102       return *this;
37103     }
37104 
setSampleShadingEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37105     PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
37106     {
37107       sampleShadingEnable = sampleShadingEnable_;
37108       return *this;
37109     }
37110 
setMinSampleShadingVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37111     PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
37112     {
37113       minSampleShading = minSampleShading_;
37114       return *this;
37115     }
37116 
setPSampleMaskVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37117     PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT
37118     {
37119       pSampleMask = pSampleMask_;
37120       return *this;
37121     }
37122 
setAlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37123     PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
37124     {
37125       alphaToCoverageEnable = alphaToCoverageEnable_;
37126       return *this;
37127     }
37128 
setAlphaToOneEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37129     PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
37130     {
37131       alphaToOneEnable = alphaToOneEnable_;
37132       return *this;
37133     }
37134 
37135 
operator VkPipelineMultisampleStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37136     operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37137     {
37138       return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
37139     }
37140 
operator VkPipelineMultisampleStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37141     operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37142     {
37143       return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
37144     }
37145 
37146 
37147 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37148     auto operator<=>( PipelineMultisampleStateCreateInfo const& ) const = default;
37149 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37150     bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37151     {
37152       return ( sType == rhs.sType )
37153           && ( pNext == rhs.pNext )
37154           && ( flags == rhs.flags )
37155           && ( rasterizationSamples == rhs.rasterizationSamples )
37156           && ( sampleShadingEnable == rhs.sampleShadingEnable )
37157           && ( minSampleShading == rhs.minSampleShading )
37158           && ( pSampleMask == rhs.pSampleMask )
37159           && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
37160           && ( alphaToOneEnable == rhs.alphaToOneEnable );
37161     }
37162 
operator !=VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37163     bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37164     {
37165       return !operator==( rhs );
37166     }
37167 #endif
37168 
37169 
37170 
37171   public:
37172     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
37173     const void* pNext = {};
37174     VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
37175     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
37176     VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
37177     float minSampleShading = {};
37178     const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {};
37179     VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
37180     VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
37181 
37182   };
37183   static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" );
37184   static_assert( std::is_standard_layout<PipelineMultisampleStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37185 
37186   template <>
37187   struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
37188   {
37189     using Type = PipelineMultisampleStateCreateInfo;
37190   };
37191 
37192   struct StencilOpState
37193   {
37194 
37195 
37196 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37197     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
37198     : failOp( failOp_ ), passOp( passOp_ ), depthFailOp( depthFailOp_ ), compareOp( compareOp_ ), compareMask( compareMask_ ), writeMask( writeMask_ ), reference( reference_ )
37199     {}
37200 
37201     VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37202 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37203     StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37204     {
37205       *this = rhs;
37206     }
37207 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37208 
operator =VULKAN_HPP_NAMESPACE::StencilOpState37209     StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37210     {
37211       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>( &rhs );
37212       return *this;
37213     }
37214 
operator =VULKAN_HPP_NAMESPACE::StencilOpState37215     StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37216     {
37217       memcpy( static_cast<void *>( this ), &rhs, sizeof( StencilOpState ) );
37218       return *this;
37219     }
37220 
setFailOpVULKAN_HPP_NAMESPACE::StencilOpState37221     StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
37222     {
37223       failOp = failOp_;
37224       return *this;
37225     }
37226 
setPassOpVULKAN_HPP_NAMESPACE::StencilOpState37227     StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
37228     {
37229       passOp = passOp_;
37230       return *this;
37231     }
37232 
setDepthFailOpVULKAN_HPP_NAMESPACE::StencilOpState37233     StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
37234     {
37235       depthFailOp = depthFailOp_;
37236       return *this;
37237     }
37238 
setCompareOpVULKAN_HPP_NAMESPACE::StencilOpState37239     StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
37240     {
37241       compareOp = compareOp_;
37242       return *this;
37243     }
37244 
setCompareMaskVULKAN_HPP_NAMESPACE::StencilOpState37245     StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
37246     {
37247       compareMask = compareMask_;
37248       return *this;
37249     }
37250 
setWriteMaskVULKAN_HPP_NAMESPACE::StencilOpState37251     StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
37252     {
37253       writeMask = writeMask_;
37254       return *this;
37255     }
37256 
setReferenceVULKAN_HPP_NAMESPACE::StencilOpState37257     StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
37258     {
37259       reference = reference_;
37260       return *this;
37261     }
37262 
37263 
operator VkStencilOpState const&VULKAN_HPP_NAMESPACE::StencilOpState37264     operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT
37265     {
37266       return *reinterpret_cast<const VkStencilOpState*>( this );
37267     }
37268 
operator VkStencilOpState&VULKAN_HPP_NAMESPACE::StencilOpState37269     operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
37270     {
37271       return *reinterpret_cast<VkStencilOpState*>( this );
37272     }
37273 
37274 
37275 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37276     auto operator<=>( StencilOpState const& ) const = default;
37277 #else
operator ==VULKAN_HPP_NAMESPACE::StencilOpState37278     bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
37279     {
37280       return ( failOp == rhs.failOp )
37281           && ( passOp == rhs.passOp )
37282           && ( depthFailOp == rhs.depthFailOp )
37283           && ( compareOp == rhs.compareOp )
37284           && ( compareMask == rhs.compareMask )
37285           && ( writeMask == rhs.writeMask )
37286           && ( reference == rhs.reference );
37287     }
37288 
operator !=VULKAN_HPP_NAMESPACE::StencilOpState37289     bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
37290     {
37291       return !operator==( rhs );
37292     }
37293 #endif
37294 
37295 
37296 
37297   public:
37298     VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37299     VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37300     VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37301     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
37302     uint32_t compareMask = {};
37303     uint32_t writeMask = {};
37304     uint32_t reference = {};
37305 
37306   };
37307   static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" );
37308   static_assert( std::is_standard_layout<StencilOpState>::value, "struct wrapper is not a standard layout!" );
37309 
37310   struct PipelineDepthStencilStateCreateInfo
37311   {
37312     static const bool allowDuplicate = false;
37313     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
37314 
37315 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37316     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
37317     : flags( flags_ ), depthTestEnable( depthTestEnable_ ), depthWriteEnable( depthWriteEnable_ ), depthCompareOp( depthCompareOp_ ), depthBoundsTestEnable( depthBoundsTestEnable_ ), stencilTestEnable( stencilTestEnable_ ), front( front_ ), back( back_ ), minDepthBounds( minDepthBounds_ ), maxDepthBounds( maxDepthBounds_ )
37318     {}
37319 
37320     VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37321 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37322     PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37323     {
37324       *this = rhs;
37325     }
37326 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37327 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37328     PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37329     {
37330       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>( &rhs );
37331       return *this;
37332     }
37333 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37334     PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37335     {
37336       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDepthStencilStateCreateInfo ) );
37337       return *this;
37338     }
37339 
setPNextVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37340     PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37341     {
37342       pNext = pNext_;
37343       return *this;
37344     }
37345 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37346     PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37347     {
37348       flags = flags_;
37349       return *this;
37350     }
37351 
setDepthTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37352     PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
37353     {
37354       depthTestEnable = depthTestEnable_;
37355       return *this;
37356     }
37357 
setDepthWriteEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37358     PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
37359     {
37360       depthWriteEnable = depthWriteEnable_;
37361       return *this;
37362     }
37363 
setDepthCompareOpVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37364     PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
37365     {
37366       depthCompareOp = depthCompareOp_;
37367       return *this;
37368     }
37369 
setDepthBoundsTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37370     PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
37371     {
37372       depthBoundsTestEnable = depthBoundsTestEnable_;
37373       return *this;
37374     }
37375 
setStencilTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37376     PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
37377     {
37378       stencilTestEnable = stencilTestEnable_;
37379       return *this;
37380     }
37381 
setFrontVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37382     PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
37383     {
37384       front = front_;
37385       return *this;
37386     }
37387 
setBackVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37388     PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
37389     {
37390       back = back_;
37391       return *this;
37392     }
37393 
setMinDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37394     PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37395     {
37396       minDepthBounds = minDepthBounds_;
37397       return *this;
37398     }
37399 
setMaxDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37400     PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37401     {
37402       maxDepthBounds = maxDepthBounds_;
37403       return *this;
37404     }
37405 
37406 
operator VkPipelineDepthStencilStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37407     operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37408     {
37409       return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
37410     }
37411 
operator VkPipelineDepthStencilStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37412     operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37413     {
37414       return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
37415     }
37416 
37417 
37418 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37419     auto operator<=>( PipelineDepthStencilStateCreateInfo const& ) const = default;
37420 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37421     bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37422     {
37423       return ( sType == rhs.sType )
37424           && ( pNext == rhs.pNext )
37425           && ( flags == rhs.flags )
37426           && ( depthTestEnable == rhs.depthTestEnable )
37427           && ( depthWriteEnable == rhs.depthWriteEnable )
37428           && ( depthCompareOp == rhs.depthCompareOp )
37429           && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
37430           && ( stencilTestEnable == rhs.stencilTestEnable )
37431           && ( front == rhs.front )
37432           && ( back == rhs.back )
37433           && ( minDepthBounds == rhs.minDepthBounds )
37434           && ( maxDepthBounds == rhs.maxDepthBounds );
37435     }
37436 
operator !=VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37437     bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37438     {
37439       return !operator==( rhs );
37440     }
37441 #endif
37442 
37443 
37444 
37445   public:
37446     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
37447     const void* pNext = {};
37448     VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
37449     VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
37450     VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
37451     VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
37452     VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
37453     VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
37454     VULKAN_HPP_NAMESPACE::StencilOpState front = {};
37455     VULKAN_HPP_NAMESPACE::StencilOpState back = {};
37456     float minDepthBounds = {};
37457     float maxDepthBounds = {};
37458 
37459   };
37460   static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" );
37461   static_assert( std::is_standard_layout<PipelineDepthStencilStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37462 
37463   template <>
37464   struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
37465   {
37466     using Type = PipelineDepthStencilStateCreateInfo;
37467   };
37468 
37469   struct PipelineColorBlendAttachmentState
37470   {
37471 
37472 
37473 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37474     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
37475     : blendEnable( blendEnable_ ), srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ ), colorWriteMask( colorWriteMask_ )
37476     {}
37477 
37478     VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37479 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37480     PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37481     {
37482       *this = rhs;
37483     }
37484 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37485 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37486     PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37487     {
37488       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>( &rhs );
37489       return *this;
37490     }
37491 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37492     PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37493     {
37494       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendAttachmentState ) );
37495       return *this;
37496     }
37497 
setBlendEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37498     PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
37499     {
37500       blendEnable = blendEnable_;
37501       return *this;
37502     }
37503 
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37504     PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37505     {
37506       srcColorBlendFactor = srcColorBlendFactor_;
37507       return *this;
37508     }
37509 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37510     PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37511     {
37512       dstColorBlendFactor = dstColorBlendFactor_;
37513       return *this;
37514     }
37515 
setColorBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37516     PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
37517     {
37518       colorBlendOp = colorBlendOp_;
37519       return *this;
37520     }
37521 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37522     PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37523     {
37524       srcAlphaBlendFactor = srcAlphaBlendFactor_;
37525       return *this;
37526     }
37527 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37528     PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37529     {
37530       dstAlphaBlendFactor = dstAlphaBlendFactor_;
37531       return *this;
37532     }
37533 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37534     PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
37535     {
37536       alphaBlendOp = alphaBlendOp_;
37537       return *this;
37538     }
37539 
setColorWriteMaskVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37540     PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
37541     {
37542       colorWriteMask = colorWriteMask_;
37543       return *this;
37544     }
37545 
37546 
operator VkPipelineColorBlendAttachmentState const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37547     operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT
37548     {
37549       return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
37550     }
37551 
operator VkPipelineColorBlendAttachmentState&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37552     operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
37553     {
37554       return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
37555     }
37556 
37557 
37558 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37559     auto operator<=>( PipelineColorBlendAttachmentState const& ) const = default;
37560 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37561     bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
37562     {
37563       return ( blendEnable == rhs.blendEnable )
37564           && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
37565           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
37566           && ( colorBlendOp == rhs.colorBlendOp )
37567           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
37568           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
37569           && ( alphaBlendOp == rhs.alphaBlendOp )
37570           && ( colorWriteMask == rhs.colorWriteMask );
37571     }
37572 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37573     bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
37574     {
37575       return !operator==( rhs );
37576     }
37577 #endif
37578 
37579 
37580 
37581   public:
37582     VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
37583     VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37584     VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37585     VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
37586     VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37587     VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37588     VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
37589     VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
37590 
37591   };
37592   static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" );
37593   static_assert( std::is_standard_layout<PipelineColorBlendAttachmentState>::value, "struct wrapper is not a standard layout!" );
37594 
37595   struct PipelineColorBlendStateCreateInfo
37596   {
37597     static const bool allowDuplicate = false;
37598     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
37599 
37600 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37601     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
37602     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), blendConstants( blendConstants_ )
37603     {}
37604 
37605     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37606 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37607     PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37608     {
37609       *this = rhs;
37610     }
37611 
37612 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37613     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_ = {} )
37614     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), blendConstants( blendConstants_ )
37615     {}
37616 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37617 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37618 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37619     PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37620     {
37621       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>( &rhs );
37622       return *this;
37623     }
37624 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37625     PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37626     {
37627       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendStateCreateInfo ) );
37628       return *this;
37629     }
37630 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37631     PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37632     {
37633       pNext = pNext_;
37634       return *this;
37635     }
37636 
setFlagsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37637     PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37638     {
37639       flags = flags_;
37640       return *this;
37641     }
37642 
setLogicOpEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37643     PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
37644     {
37645       logicOpEnable = logicOpEnable_;
37646       return *this;
37647     }
37648 
setLogicOpVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37649     PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
37650     {
37651       logicOp = logicOp_;
37652       return *this;
37653     }
37654 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37655     PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
37656     {
37657       attachmentCount = attachmentCount_;
37658       return *this;
37659     }
37660 
setPAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37661     PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT
37662     {
37663       pAttachments = pAttachments_;
37664       return *this;
37665     }
37666 
37667 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37668     PipelineColorBlendStateCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
37669     {
37670       attachmentCount = static_cast<uint32_t>( attachments_.size() );
37671       pAttachments = attachments_.data();
37672       return *this;
37673     }
37674 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37675 
setBlendConstantsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37676     PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
37677     {
37678       blendConstants = blendConstants_;
37679       return *this;
37680     }
37681 
37682 
operator VkPipelineColorBlendStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37683     operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37684     {
37685       return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
37686     }
37687 
operator VkPipelineColorBlendStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37688     operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37689     {
37690       return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
37691     }
37692 
37693 
37694 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37695     auto operator<=>( PipelineColorBlendStateCreateInfo const& ) const = default;
37696 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37697     bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37698     {
37699       return ( sType == rhs.sType )
37700           && ( pNext == rhs.pNext )
37701           && ( flags == rhs.flags )
37702           && ( logicOpEnable == rhs.logicOpEnable )
37703           && ( logicOp == rhs.logicOp )
37704           && ( attachmentCount == rhs.attachmentCount )
37705           && ( pAttachments == rhs.pAttachments )
37706           && ( blendConstants == rhs.blendConstants );
37707     }
37708 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37709     bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37710     {
37711       return !operator==( rhs );
37712     }
37713 #endif
37714 
37715 
37716 
37717   public:
37718     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
37719     const void* pNext = {};
37720     VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
37721     VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
37722     VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
37723     uint32_t attachmentCount = {};
37724     const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {};
37725     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
37726 
37727   };
37728   static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" );
37729   static_assert( std::is_standard_layout<PipelineColorBlendStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37730 
37731   template <>
37732   struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
37733   {
37734     using Type = PipelineColorBlendStateCreateInfo;
37735   };
37736 
37737   struct PipelineDynamicStateCreateInfo
37738   {
37739     static const bool allowDuplicate = false;
37740     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
37741 
37742 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37743     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, uint32_t dynamicStateCount_ = {}, const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {}) VULKAN_HPP_NOEXCEPT
37744     : flags( flags_ ), dynamicStateCount( dynamicStateCount_ ), pDynamicStates( pDynamicStates_ )
37745     {}
37746 
37747     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37748 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37749     PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37750     {
37751       *this = rhs;
37752     }
37753 
37754 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37755     PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ )
37756     : flags( flags_ ), dynamicStateCount( static_cast<uint32_t>( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() )
37757     {}
37758 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37759 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37760 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37761     PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37762     {
37763       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>( &rhs );
37764       return *this;
37765     }
37766 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37767     PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37768     {
37769       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDynamicStateCreateInfo ) );
37770       return *this;
37771     }
37772 
setPNextVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37773     PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37774     {
37775       pNext = pNext_;
37776       return *this;
37777     }
37778 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37779     PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37780     {
37781       flags = flags_;
37782       return *this;
37783     }
37784 
setDynamicStateCountVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37785     PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
37786     {
37787       dynamicStateCount = dynamicStateCount_;
37788       return *this;
37789     }
37790 
setPDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37791     PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
37792     {
37793       pDynamicStates = pDynamicStates_;
37794       return *this;
37795     }
37796 
37797 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37798     PipelineDynamicStateCreateInfo & setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT
37799     {
37800       dynamicStateCount = static_cast<uint32_t>( dynamicStates_.size() );
37801       pDynamicStates = dynamicStates_.data();
37802       return *this;
37803     }
37804 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37805 
37806 
operator VkPipelineDynamicStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37807     operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37808     {
37809       return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
37810     }
37811 
operator VkPipelineDynamicStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37812     operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37813     {
37814       return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
37815     }
37816 
37817 
37818 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37819     auto operator<=>( PipelineDynamicStateCreateInfo const& ) const = default;
37820 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37821     bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37822     {
37823       return ( sType == rhs.sType )
37824           && ( pNext == rhs.pNext )
37825           && ( flags == rhs.flags )
37826           && ( dynamicStateCount == rhs.dynamicStateCount )
37827           && ( pDynamicStates == rhs.pDynamicStates );
37828     }
37829 
operator !=VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37830     bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37831     {
37832       return !operator==( rhs );
37833     }
37834 #endif
37835 
37836 
37837 
37838   public:
37839     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
37840     const void* pNext = {};
37841     VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
37842     uint32_t dynamicStateCount = {};
37843     const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {};
37844 
37845   };
37846   static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" );
37847   static_assert( std::is_standard_layout<PipelineDynamicStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37848 
37849   template <>
37850   struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
37851   {
37852     using Type = PipelineDynamicStateCreateInfo;
37853   };
37854 
37855   struct GraphicsPipelineCreateInfo
37856   {
37857     static const bool allowDuplicate = false;
37858     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
37859 
37860 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37861     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
37862     : 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_ )
37863     {}
37864 
37865     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37866 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37867     GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37868     {
37869       *this = rhs;
37870     }
37871 
37872 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37873     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_ = {} )
37874     : 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_ )
37875     {}
37876 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37877 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37878 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37879     GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37880     {
37881       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>( &rhs );
37882       return *this;
37883     }
37884 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37885     GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37886     {
37887       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsPipelineCreateInfo ) );
37888       return *this;
37889     }
37890 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37891     GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37892     {
37893       pNext = pNext_;
37894       return *this;
37895     }
37896 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37897     GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37898     {
37899       flags = flags_;
37900       return *this;
37901     }
37902 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37903     GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
37904     {
37905       stageCount = stageCount_;
37906       return *this;
37907     }
37908 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37909     GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
37910     {
37911       pStages = pStages_;
37912       return *this;
37913     }
37914 
37915 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37916     GraphicsPipelineCreateInfo & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
37917     {
37918       stageCount = static_cast<uint32_t>( stages_.size() );
37919       pStages = stages_.data();
37920       return *this;
37921     }
37922 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37923 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37924     GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
37925     {
37926       pVertexInputState = pVertexInputState_;
37927       return *this;
37928     }
37929 
setPInputAssemblyStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37930     GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
37931     {
37932       pInputAssemblyState = pInputAssemblyState_;
37933       return *this;
37934     }
37935 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37936     GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
37937     {
37938       pTessellationState = pTessellationState_;
37939       return *this;
37940     }
37941 
setPViewportStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37942     GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT
37943     {
37944       pViewportState = pViewportState_;
37945       return *this;
37946     }
37947 
setPRasterizationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37948     GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
37949     {
37950       pRasterizationState = pRasterizationState_;
37951       return *this;
37952     }
37953 
setPMultisampleStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37954     GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
37955     {
37956       pMultisampleState = pMultisampleState_;
37957       return *this;
37958     }
37959 
setPDepthStencilStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37960     GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
37961     {
37962       pDepthStencilState = pDepthStencilState_;
37963       return *this;
37964     }
37965 
setPColorBlendStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37966     GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
37967     {
37968       pColorBlendState = pColorBlendState_;
37969       return *this;
37970     }
37971 
setPDynamicStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37972     GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT
37973     {
37974       pDynamicState = pDynamicState_;
37975       return *this;
37976     }
37977 
setLayoutVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37978     GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
37979     {
37980       layout = layout_;
37981       return *this;
37982     }
37983 
setRenderPassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37984     GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
37985     {
37986       renderPass = renderPass_;
37987       return *this;
37988     }
37989 
setSubpassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37990     GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
37991     {
37992       subpass = subpass_;
37993       return *this;
37994     }
37995 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo37996     GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
37997     {
37998       basePipelineHandle = basePipelineHandle_;
37999       return *this;
38000     }
38001 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38002     GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
38003     {
38004       basePipelineIndex = basePipelineIndex_;
38005       return *this;
38006     }
38007 
38008 
operator VkGraphicsPipelineCreateInfo const&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38009     operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38010     {
38011       return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
38012     }
38013 
operator VkGraphicsPipelineCreateInfo&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38014     operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
38015     {
38016       return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
38017     }
38018 
38019 
38020 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38021     auto operator<=>( GraphicsPipelineCreateInfo const& ) const = default;
38022 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38023     bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38024     {
38025       return ( sType == rhs.sType )
38026           && ( pNext == rhs.pNext )
38027           && ( flags == rhs.flags )
38028           && ( stageCount == rhs.stageCount )
38029           && ( pStages == rhs.pStages )
38030           && ( pVertexInputState == rhs.pVertexInputState )
38031           && ( pInputAssemblyState == rhs.pInputAssemblyState )
38032           && ( pTessellationState == rhs.pTessellationState )
38033           && ( pViewportState == rhs.pViewportState )
38034           && ( pRasterizationState == rhs.pRasterizationState )
38035           && ( pMultisampleState == rhs.pMultisampleState )
38036           && ( pDepthStencilState == rhs.pDepthStencilState )
38037           && ( pColorBlendState == rhs.pColorBlendState )
38038           && ( pDynamicState == rhs.pDynamicState )
38039           && ( layout == rhs.layout )
38040           && ( renderPass == rhs.renderPass )
38041           && ( subpass == rhs.subpass )
38042           && ( basePipelineHandle == rhs.basePipelineHandle )
38043           && ( basePipelineIndex == rhs.basePipelineIndex );
38044     }
38045 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38046     bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38047     {
38048       return !operator==( rhs );
38049     }
38050 #endif
38051 
38052 
38053 
38054   public:
38055     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
38056     const void* pNext = {};
38057     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
38058     uint32_t stageCount = {};
38059     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
38060     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
38061     const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {};
38062     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
38063     const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {};
38064     const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {};
38065     const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {};
38066     const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {};
38067     const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {};
38068     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {};
38069     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
38070     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
38071     uint32_t subpass = {};
38072     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
38073     int32_t basePipelineIndex = {};
38074 
38075   };
38076   static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" );
38077   static_assert( std::is_standard_layout<GraphicsPipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
38078 
38079   template <>
38080   struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
38081   {
38082     using Type = GraphicsPipelineCreateInfo;
38083   };
38084 
38085   struct ImageCreateInfo
38086   {
38087     static const bool allowDuplicate = false;
38088     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
38089 
38090 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38091     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
38092     : 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_ )
38093     {}
38094 
38095     VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38096 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38097     ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38098     {
38099       *this = rhs;
38100     }
38101 
38102 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38103     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 )
38104     : 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_ )
38105     {}
38106 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38107 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38108 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo38109     ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38110     {
38111       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>( &rhs );
38112       return *this;
38113     }
38114 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo38115     ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38116     {
38117       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCreateInfo ) );
38118       return *this;
38119     }
38120 
setPNextVULKAN_HPP_NAMESPACE::ImageCreateInfo38121     ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38122     {
38123       pNext = pNext_;
38124       return *this;
38125     }
38126 
setFlagsVULKAN_HPP_NAMESPACE::ImageCreateInfo38127     ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38128     {
38129       flags = flags_;
38130       return *this;
38131     }
38132 
setImageTypeVULKAN_HPP_NAMESPACE::ImageCreateInfo38133     ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
38134     {
38135       imageType = imageType_;
38136       return *this;
38137     }
38138 
setFormatVULKAN_HPP_NAMESPACE::ImageCreateInfo38139     ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
38140     {
38141       format = format_;
38142       return *this;
38143     }
38144 
setExtentVULKAN_HPP_NAMESPACE::ImageCreateInfo38145     ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
38146     {
38147       extent = extent_;
38148       return *this;
38149     }
38150 
setMipLevelsVULKAN_HPP_NAMESPACE::ImageCreateInfo38151     ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
38152     {
38153       mipLevels = mipLevels_;
38154       return *this;
38155     }
38156 
setArrayLayersVULKAN_HPP_NAMESPACE::ImageCreateInfo38157     ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
38158     {
38159       arrayLayers = arrayLayers_;
38160       return *this;
38161     }
38162 
setSamplesVULKAN_HPP_NAMESPACE::ImageCreateInfo38163     ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
38164     {
38165       samples = samples_;
38166       return *this;
38167     }
38168 
setTilingVULKAN_HPP_NAMESPACE::ImageCreateInfo38169     ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
38170     {
38171       tiling = tiling_;
38172       return *this;
38173     }
38174 
setUsageVULKAN_HPP_NAMESPACE::ImageCreateInfo38175     ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
38176     {
38177       usage = usage_;
38178       return *this;
38179     }
38180 
setSharingModeVULKAN_HPP_NAMESPACE::ImageCreateInfo38181     ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
38182     {
38183       sharingMode = sharingMode_;
38184       return *this;
38185     }
38186 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::ImageCreateInfo38187     ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
38188     {
38189       queueFamilyIndexCount = queueFamilyIndexCount_;
38190       return *this;
38191     }
38192 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo38193     ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
38194     {
38195       pQueueFamilyIndices = pQueueFamilyIndices_;
38196       return *this;
38197     }
38198 
38199 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo38200     ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
38201     {
38202       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
38203       pQueueFamilyIndices = queueFamilyIndices_.data();
38204       return *this;
38205     }
38206 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38207 
setInitialLayoutVULKAN_HPP_NAMESPACE::ImageCreateInfo38208     ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
38209     {
38210       initialLayout = initialLayout_;
38211       return *this;
38212     }
38213 
38214 
operator VkImageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageCreateInfo38215     operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38216     {
38217       return *reinterpret_cast<const VkImageCreateInfo*>( this );
38218     }
38219 
operator VkImageCreateInfo&VULKAN_HPP_NAMESPACE::ImageCreateInfo38220     operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
38221     {
38222       return *reinterpret_cast<VkImageCreateInfo*>( this );
38223     }
38224 
38225 
38226 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38227     auto operator<=>( ImageCreateInfo const& ) const = default;
38228 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCreateInfo38229     bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38230     {
38231       return ( sType == rhs.sType )
38232           && ( pNext == rhs.pNext )
38233           && ( flags == rhs.flags )
38234           && ( imageType == rhs.imageType )
38235           && ( format == rhs.format )
38236           && ( extent == rhs.extent )
38237           && ( mipLevels == rhs.mipLevels )
38238           && ( arrayLayers == rhs.arrayLayers )
38239           && ( samples == rhs.samples )
38240           && ( tiling == rhs.tiling )
38241           && ( usage == rhs.usage )
38242           && ( sharingMode == rhs.sharingMode )
38243           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
38244           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
38245           && ( initialLayout == rhs.initialLayout );
38246     }
38247 
operator !=VULKAN_HPP_NAMESPACE::ImageCreateInfo38248     bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38249     {
38250       return !operator==( rhs );
38251     }
38252 #endif
38253 
38254 
38255 
38256   public:
38257     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
38258     const void* pNext = {};
38259     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
38260     VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
38261     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
38262     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
38263     uint32_t mipLevels = {};
38264     uint32_t arrayLayers = {};
38265     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
38266     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
38267     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
38268     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
38269     uint32_t queueFamilyIndexCount = {};
38270     const uint32_t* pQueueFamilyIndices = {};
38271     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
38272 
38273   };
38274   static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
38275   static_assert( std::is_standard_layout<ImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
38276 
38277   template <>
38278   struct CppType<StructureType, StructureType::eImageCreateInfo>
38279   {
38280     using Type = ImageCreateInfo;
38281   };
38282 
38283   struct ImageViewCreateInfo
38284   {
38285     static const bool allowDuplicate = false;
38286     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
38287 
38288 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38289     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
38290     : flags( flags_ ), image( image_ ), viewType( viewType_ ), format( format_ ), components( components_ ), subresourceRange( subresourceRange_ )
38291     {}
38292 
38293     VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38294 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38295     ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38296     {
38297       *this = rhs;
38298     }
38299 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38300 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38301     ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38302     {
38303       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>( &rhs );
38304       return *this;
38305     }
38306 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38307     ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38308     {
38309       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewCreateInfo ) );
38310       return *this;
38311     }
38312 
setPNextVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38313     ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38314     {
38315       pNext = pNext_;
38316       return *this;
38317     }
38318 
setFlagsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38319     ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38320     {
38321       flags = flags_;
38322       return *this;
38323     }
38324 
setImageVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38325     ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
38326     {
38327       image = image_;
38328       return *this;
38329     }
38330 
setViewTypeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38331     ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
38332     {
38333       viewType = viewType_;
38334       return *this;
38335     }
38336 
setFormatVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38337     ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
38338     {
38339       format = format_;
38340       return *this;
38341     }
38342 
setComponentsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38343     ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
38344     {
38345       components = components_;
38346       return *this;
38347     }
38348 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38349     ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
38350     {
38351       subresourceRange = subresourceRange_;
38352       return *this;
38353     }
38354 
38355 
operator VkImageViewCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38356     operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38357     {
38358       return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
38359     }
38360 
operator VkImageViewCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38361     operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
38362     {
38363       return *reinterpret_cast<VkImageViewCreateInfo*>( this );
38364     }
38365 
38366 
38367 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38368     auto operator<=>( ImageViewCreateInfo const& ) const = default;
38369 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38370     bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38371     {
38372       return ( sType == rhs.sType )
38373           && ( pNext == rhs.pNext )
38374           && ( flags == rhs.flags )
38375           && ( image == rhs.image )
38376           && ( viewType == rhs.viewType )
38377           && ( format == rhs.format )
38378           && ( components == rhs.components )
38379           && ( subresourceRange == rhs.subresourceRange );
38380     }
38381 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38382     bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38383     {
38384       return !operator==( rhs );
38385     }
38386 #endif
38387 
38388 
38389 
38390   public:
38391     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
38392     const void* pNext = {};
38393     VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
38394     VULKAN_HPP_NAMESPACE::Image image = {};
38395     VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
38396     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
38397     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
38398     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
38399 
38400   };
38401   static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
38402   static_assert( std::is_standard_layout<ImageViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
38403 
38404   template <>
38405   struct CppType<StructureType, StructureType::eImageViewCreateInfo>
38406   {
38407     using Type = ImageViewCreateInfo;
38408   };
38409 
38410   struct IndirectCommandsLayoutTokenNV
38411   {
38412     static const bool allowDuplicate = false;
38413     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
38414 
38415 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38416     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
38417     : 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_ )
38418     {}
38419 
38420     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38421 
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38422     IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38423     {
38424       *this = rhs;
38425     }
38426 
38427 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38428     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_ = {} )
38429     : 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() )
38430     {
38431 #ifdef VULKAN_HPP_NO_EXCEPTIONS
38432       VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() );
38433 #else
38434       if ( indexTypes_.size() != indexTypeValues_.size() )
38435       {
38436         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" );
38437       }
38438 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
38439     }
38440 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38441 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38442 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38443     IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38444     {
38445       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>( &rhs );
38446       return *this;
38447     }
38448 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38449     IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38450     {
38451       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsLayoutTokenNV ) );
38452       return *this;
38453     }
38454 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38455     IndirectCommandsLayoutTokenNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38456     {
38457       pNext = pNext_;
38458       return *this;
38459     }
38460 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38461     IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
38462     {
38463       tokenType = tokenType_;
38464       return *this;
38465     }
38466 
setStreamVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38467     IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
38468     {
38469       stream = stream_;
38470       return *this;
38471     }
38472 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38473     IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
38474     {
38475       offset = offset_;
38476       return *this;
38477     }
38478 
setVertexBindingUnitVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38479     IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
38480     {
38481       vertexBindingUnit = vertexBindingUnit_;
38482       return *this;
38483     }
38484 
setVertexDynamicStrideVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38485     IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
38486     {
38487       vertexDynamicStride = vertexDynamicStride_;
38488       return *this;
38489     }
38490 
setPushconstantPipelineLayoutVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38491     IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
38492     {
38493       pushconstantPipelineLayout = pushconstantPipelineLayout_;
38494       return *this;
38495     }
38496 
setPushconstantShaderStageFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38497     IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
38498     {
38499       pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
38500       return *this;
38501     }
38502 
setPushconstantOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38503     IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
38504     {
38505       pushconstantOffset = pushconstantOffset_;
38506       return *this;
38507     }
38508 
setPushconstantSizeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38509     IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
38510     {
38511       pushconstantSize = pushconstantSize_;
38512       return *this;
38513     }
38514 
setIndirectStateFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38515     IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
38516     {
38517       indirectStateFlags = indirectStateFlags_;
38518       return *this;
38519     }
38520 
setIndexTypeCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38521     IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
38522     {
38523       indexTypeCount = indexTypeCount_;
38524       return *this;
38525     }
38526 
setPIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38527     IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
38528     {
38529       pIndexTypes = pIndexTypes_;
38530       return *this;
38531     }
38532 
38533 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38534     IndirectCommandsLayoutTokenNV & setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ ) VULKAN_HPP_NOEXCEPT
38535     {
38536       indexTypeCount = static_cast<uint32_t>( indexTypes_.size() );
38537       pIndexTypes = indexTypes_.data();
38538       return *this;
38539     }
38540 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38541 
setPIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38542     IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t* pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
38543     {
38544       pIndexTypeValues = pIndexTypeValues_;
38545       return *this;
38546     }
38547 
38548 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38549     IndirectCommandsLayoutTokenNV & setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
38550     {
38551       indexTypeCount = static_cast<uint32_t>( indexTypeValues_.size() );
38552       pIndexTypeValues = indexTypeValues_.data();
38553       return *this;
38554     }
38555 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38556 
38557 
operator VkIndirectCommandsLayoutTokenNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38558     operator VkIndirectCommandsLayoutTokenNV const&() const VULKAN_HPP_NOEXCEPT
38559     {
38560       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV*>( this );
38561     }
38562 
operator VkIndirectCommandsLayoutTokenNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38563     operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
38564     {
38565       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV*>( this );
38566     }
38567 
38568 
38569 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38570     auto operator<=>( IndirectCommandsLayoutTokenNV const& ) const = default;
38571 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38572     bool operator==( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38573     {
38574       return ( sType == rhs.sType )
38575           && ( pNext == rhs.pNext )
38576           && ( tokenType == rhs.tokenType )
38577           && ( stream == rhs.stream )
38578           && ( offset == rhs.offset )
38579           && ( vertexBindingUnit == rhs.vertexBindingUnit )
38580           && ( vertexDynamicStride == rhs.vertexDynamicStride )
38581           && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout )
38582           && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags )
38583           && ( pushconstantOffset == rhs.pushconstantOffset )
38584           && ( pushconstantSize == rhs.pushconstantSize )
38585           && ( indirectStateFlags == rhs.indirectStateFlags )
38586           && ( indexTypeCount == rhs.indexTypeCount )
38587           && ( pIndexTypes == rhs.pIndexTypes )
38588           && ( pIndexTypeValues == rhs.pIndexTypeValues );
38589     }
38590 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38591     bool operator!=( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38592     {
38593       return !operator==( rhs );
38594     }
38595 #endif
38596 
38597 
38598 
38599   public:
38600     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV;
38601     const void* pNext = {};
38602     VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
38603     uint32_t stream = {};
38604     uint32_t offset = {};
38605     uint32_t vertexBindingUnit = {};
38606     VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
38607     VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
38608     VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
38609     uint32_t pushconstantOffset = {};
38610     uint32_t pushconstantSize = {};
38611     VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
38612     uint32_t indexTypeCount = {};
38613     const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes = {};
38614     const uint32_t* pIndexTypeValues = {};
38615 
38616   };
38617   static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), "struct and wrapper have different size!" );
38618   static_assert( std::is_standard_layout<IndirectCommandsLayoutTokenNV>::value, "struct wrapper is not a standard layout!" );
38619 
38620   template <>
38621   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
38622   {
38623     using Type = IndirectCommandsLayoutTokenNV;
38624   };
38625 
38626   struct IndirectCommandsLayoutCreateInfoNV
38627   {
38628     static const bool allowDuplicate = false;
38629     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
38630 
38631 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38632     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
38633     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( tokenCount_ ), pTokens( pTokens_ ), streamCount( streamCount_ ), pStreamStrides( pStreamStrides_ )
38634     {}
38635 
38636     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38637 
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38638     IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38639     {
38640       *this = rhs;
38641     }
38642 
38643 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38644     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_ = {} )
38645     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( static_cast<uint32_t>( tokens_.size() ) ), pTokens( tokens_.data() ), streamCount( static_cast<uint32_t>( streamStrides_.size() ) ), pStreamStrides( streamStrides_.data() )
38646     {}
38647 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38648 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38649 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38650     IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38651     {
38652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>( &rhs );
38653       return *this;
38654     }
38655 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38656     IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38657     {
38658       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsLayoutCreateInfoNV ) );
38659       return *this;
38660     }
38661 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38662     IndirectCommandsLayoutCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38663     {
38664       pNext = pNext_;
38665       return *this;
38666     }
38667 
setFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38668     IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
38669     {
38670       flags = flags_;
38671       return *this;
38672     }
38673 
setPipelineBindPointVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38674     IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
38675     {
38676       pipelineBindPoint = pipelineBindPoint_;
38677       return *this;
38678     }
38679 
setTokenCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38680     IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
38681     {
38682       tokenCount = tokenCount_;
38683       return *this;
38684     }
38685 
setPTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38686     IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ ) VULKAN_HPP_NOEXCEPT
38687     {
38688       pTokens = pTokens_;
38689       return *this;
38690     }
38691 
38692 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38693     IndirectCommandsLayoutCreateInfoNV & setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_ ) VULKAN_HPP_NOEXCEPT
38694     {
38695       tokenCount = static_cast<uint32_t>( tokens_.size() );
38696       pTokens = tokens_.data();
38697       return *this;
38698     }
38699 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38700 
setStreamCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38701     IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
38702     {
38703       streamCount = streamCount_;
38704       return *this;
38705     }
38706 
setPStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38707     IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t* pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
38708     {
38709       pStreamStrides = pStreamStrides_;
38710       return *this;
38711     }
38712 
38713 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38714     IndirectCommandsLayoutCreateInfoNV & setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
38715     {
38716       streamCount = static_cast<uint32_t>( streamStrides_.size() );
38717       pStreamStrides = streamStrides_.data();
38718       return *this;
38719     }
38720 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38721 
38722 
operator VkIndirectCommandsLayoutCreateInfoNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38723     operator VkIndirectCommandsLayoutCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
38724     {
38725       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( this );
38726     }
38727 
operator VkIndirectCommandsLayoutCreateInfoNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38728     operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
38729     {
38730       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV*>( this );
38731     }
38732 
38733 
38734 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38735     auto operator<=>( IndirectCommandsLayoutCreateInfoNV const& ) const = default;
38736 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38737     bool operator==( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38738     {
38739       return ( sType == rhs.sType )
38740           && ( pNext == rhs.pNext )
38741           && ( flags == rhs.flags )
38742           && ( pipelineBindPoint == rhs.pipelineBindPoint )
38743           && ( tokenCount == rhs.tokenCount )
38744           && ( pTokens == rhs.pTokens )
38745           && ( streamCount == rhs.streamCount )
38746           && ( pStreamStrides == rhs.pStreamStrides );
38747     }
38748 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38749     bool operator!=( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38750     {
38751       return !operator==( rhs );
38752     }
38753 #endif
38754 
38755 
38756 
38757   public:
38758     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
38759     const void* pNext = {};
38760     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
38761     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
38762     uint32_t tokenCount = {};
38763     const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens = {};
38764     uint32_t streamCount = {};
38765     const uint32_t* pStreamStrides = {};
38766 
38767   };
38768   static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), "struct and wrapper have different size!" );
38769   static_assert( std::is_standard_layout<IndirectCommandsLayoutCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
38770 
38771   template <>
38772   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
38773   {
38774     using Type = IndirectCommandsLayoutCreateInfoNV;
38775   };
38776 
38777   struct PipelineCacheCreateInfo
38778   {
38779     static const bool allowDuplicate = false;
38780     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
38781 
38782 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38783     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
38784     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
38785     {}
38786 
38787     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38788 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38789     PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38790     {
38791       *this = rhs;
38792     }
38793 
38794 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38795     template <typename T>
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38796     PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
38797     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
38798     {}
38799 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38800 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38801 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38802     PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38803     {
38804       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>( &rhs );
38805       return *this;
38806     }
38807 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38808     PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38809     {
38810       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCacheCreateInfo ) );
38811       return *this;
38812     }
38813 
setPNextVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38814     PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38815     {
38816       pNext = pNext_;
38817       return *this;
38818     }
38819 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38820     PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38821     {
38822       flags = flags_;
38823       return *this;
38824     }
38825 
setInitialDataSizeVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38826     PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
38827     {
38828       initialDataSize = initialDataSize_;
38829       return *this;
38830     }
38831 
setPInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38832     PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
38833     {
38834       pInitialData = pInitialData_;
38835       return *this;
38836     }
38837 
38838 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38839     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38840     PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
38841     {
38842       initialDataSize = initialData_.size() * sizeof(T);
38843       pInitialData = initialData_.data();
38844       return *this;
38845     }
38846 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38847 
38848 
operator VkPipelineCacheCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38849     operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38850     {
38851       return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
38852     }
38853 
operator VkPipelineCacheCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38854     operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
38855     {
38856       return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
38857     }
38858 
38859 
38860 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38861     auto operator<=>( PipelineCacheCreateInfo const& ) const = default;
38862 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38863     bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38864     {
38865       return ( sType == rhs.sType )
38866           && ( pNext == rhs.pNext )
38867           && ( flags == rhs.flags )
38868           && ( initialDataSize == rhs.initialDataSize )
38869           && ( pInitialData == rhs.pInitialData );
38870     }
38871 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo38872     bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38873     {
38874       return !operator==( rhs );
38875     }
38876 #endif
38877 
38878 
38879 
38880   public:
38881     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
38882     const void* pNext = {};
38883     VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
38884     size_t initialDataSize = {};
38885     const void* pInitialData = {};
38886 
38887   };
38888   static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" );
38889   static_assert( std::is_standard_layout<PipelineCacheCreateInfo>::value, "struct wrapper is not a standard layout!" );
38890 
38891   template <>
38892   struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
38893   {
38894     using Type = PipelineCacheCreateInfo;
38895   };
38896 
38897   struct PushConstantRange
38898   {
38899 
38900 
38901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange38902     VULKAN_HPP_CONSTEXPR PushConstantRange(VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {}) VULKAN_HPP_NOEXCEPT
38903     : stageFlags( stageFlags_ ), offset( offset_ ), size( size_ )
38904     {}
38905 
38906     VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38907 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange38908     PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
38909     {
38910       *this = rhs;
38911     }
38912 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38913 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange38914     PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
38915     {
38916       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
38917       return *this;
38918     }
38919 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange38920     PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
38921     {
38922       memcpy( static_cast<void *>( this ), &rhs, sizeof( PushConstantRange ) );
38923       return *this;
38924     }
38925 
setStageFlagsVULKAN_HPP_NAMESPACE::PushConstantRange38926     PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
38927     {
38928       stageFlags = stageFlags_;
38929       return *this;
38930     }
38931 
setOffsetVULKAN_HPP_NAMESPACE::PushConstantRange38932     PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
38933     {
38934       offset = offset_;
38935       return *this;
38936     }
38937 
setSizeVULKAN_HPP_NAMESPACE::PushConstantRange38938     PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
38939     {
38940       size = size_;
38941       return *this;
38942     }
38943 
38944 
operator VkPushConstantRange const&VULKAN_HPP_NAMESPACE::PushConstantRange38945     operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT
38946     {
38947       return *reinterpret_cast<const VkPushConstantRange*>( this );
38948     }
38949 
operator VkPushConstantRange&VULKAN_HPP_NAMESPACE::PushConstantRange38950     operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
38951     {
38952       return *reinterpret_cast<VkPushConstantRange*>( this );
38953     }
38954 
38955 
38956 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38957     auto operator<=>( PushConstantRange const& ) const = default;
38958 #else
operator ==VULKAN_HPP_NAMESPACE::PushConstantRange38959     bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
38960     {
38961       return ( stageFlags == rhs.stageFlags )
38962           && ( offset == rhs.offset )
38963           && ( size == rhs.size );
38964     }
38965 
operator !=VULKAN_HPP_NAMESPACE::PushConstantRange38966     bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
38967     {
38968       return !operator==( rhs );
38969     }
38970 #endif
38971 
38972 
38973 
38974   public:
38975     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
38976     uint32_t offset = {};
38977     uint32_t size = {};
38978 
38979   };
38980   static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" );
38981   static_assert( std::is_standard_layout<PushConstantRange>::value, "struct wrapper is not a standard layout!" );
38982 
38983   struct PipelineLayoutCreateInfo
38984   {
38985     static const bool allowDuplicate = false;
38986     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
38987 
38988 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo38989     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
38990     : flags( flags_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ )
38991     {}
38992 
38993     VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38994 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo38995     PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38996     {
38997       *this = rhs;
38998     }
38999 
39000 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39001     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_ = {} )
39002     : flags( flags_ ), setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() )
39003     {}
39004 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39005 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39006 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39007     PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39008     {
39009       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>( &rhs );
39010       return *this;
39011     }
39012 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39013     PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39014     {
39015       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineLayoutCreateInfo ) );
39016       return *this;
39017     }
39018 
setPNextVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39019     PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39020     {
39021       pNext = pNext_;
39022       return *this;
39023     }
39024 
setFlagsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39025     PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39026     {
39027       flags = flags_;
39028       return *this;
39029     }
39030 
setSetLayoutCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39031     PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
39032     {
39033       setLayoutCount = setLayoutCount_;
39034       return *this;
39035     }
39036 
setPSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39037     PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
39038     {
39039       pSetLayouts = pSetLayouts_;
39040       return *this;
39041     }
39042 
39043 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39044     PipelineLayoutCreateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
39045     {
39046       setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
39047       pSetLayouts = setLayouts_.data();
39048       return *this;
39049     }
39050 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39051 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39052     PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
39053     {
39054       pushConstantRangeCount = pushConstantRangeCount_;
39055       return *this;
39056     }
39057 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39058     PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
39059     {
39060       pPushConstantRanges = pPushConstantRanges_;
39061       return *this;
39062     }
39063 
39064 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39065     PipelineLayoutCreateInfo & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
39066     {
39067       pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
39068       pPushConstantRanges = pushConstantRanges_.data();
39069       return *this;
39070     }
39071 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39072 
39073 
operator VkPipelineLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39074     operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39075     {
39076       return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
39077     }
39078 
operator VkPipelineLayoutCreateInfo&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39079     operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
39080     {
39081       return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
39082     }
39083 
39084 
39085 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39086     auto operator<=>( PipelineLayoutCreateInfo const& ) const = default;
39087 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39088     bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39089     {
39090       return ( sType == rhs.sType )
39091           && ( pNext == rhs.pNext )
39092           && ( flags == rhs.flags )
39093           && ( setLayoutCount == rhs.setLayoutCount )
39094           && ( pSetLayouts == rhs.pSetLayouts )
39095           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
39096           && ( pPushConstantRanges == rhs.pPushConstantRanges );
39097     }
39098 
operator !=VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39099     bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39100     {
39101       return !operator==( rhs );
39102     }
39103 #endif
39104 
39105 
39106 
39107   public:
39108     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
39109     const void* pNext = {};
39110     VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
39111     uint32_t setLayoutCount = {};
39112     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
39113     uint32_t pushConstantRangeCount = {};
39114     const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {};
39115 
39116   };
39117   static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" );
39118   static_assert( std::is_standard_layout<PipelineLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
39119 
39120   template <>
39121   struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
39122   {
39123     using Type = PipelineLayoutCreateInfo;
39124   };
39125 
39126   struct PrivateDataSlotCreateInfoEXT
39127   {
39128     static const bool allowDuplicate = false;
39129     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT;
39130 
39131 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39132     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
39133     : flags( flags_ )
39134     {}
39135 
39136     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39137 
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39138     PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39139     {
39140       *this = rhs;
39141     }
39142 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39143 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39144     PrivateDataSlotCreateInfoEXT & operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39145     {
39146       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const *>( &rhs );
39147       return *this;
39148     }
39149 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39150     PrivateDataSlotCreateInfoEXT & operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39151     {
39152       memcpy( static_cast<void *>( this ), &rhs, sizeof( PrivateDataSlotCreateInfoEXT ) );
39153       return *this;
39154     }
39155 
setPNextVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39156     PrivateDataSlotCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39157     {
39158       pNext = pNext_;
39159       return *this;
39160     }
39161 
setFlagsVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39162     PrivateDataSlotCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
39163     {
39164       flags = flags_;
39165       return *this;
39166     }
39167 
39168 
operator VkPrivateDataSlotCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39169     operator VkPrivateDataSlotCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
39170     {
39171       return *reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( this );
39172     }
39173 
operator VkPrivateDataSlotCreateInfoEXT&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39174     operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
39175     {
39176       return *reinterpret_cast<VkPrivateDataSlotCreateInfoEXT*>( this );
39177     }
39178 
39179 
39180 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39181     auto operator<=>( PrivateDataSlotCreateInfoEXT const& ) const = default;
39182 #else
operator ==VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39183     bool operator==( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39184     {
39185       return ( sType == rhs.sType )
39186           && ( pNext == rhs.pNext )
39187           && ( flags == rhs.flags );
39188     }
39189 
operator !=VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39190     bool operator!=( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39191     {
39192       return !operator==( rhs );
39193     }
39194 #endif
39195 
39196 
39197 
39198   public:
39199     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT;
39200     const void* pNext = {};
39201     VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {};
39202 
39203   };
39204   static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), "struct and wrapper have different size!" );
39205   static_assert( std::is_standard_layout<PrivateDataSlotCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
39206 
39207   template <>
39208   struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfoEXT>
39209   {
39210     using Type = PrivateDataSlotCreateInfoEXT;
39211   };
39212 
39213   class PrivateDataSlotEXT
39214   {
39215   public:
39216     using CType = VkPrivateDataSlotEXT;
39217 
39218     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT;
39219     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
39220 
39221   public:
PrivateDataSlotEXT()39222     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() VULKAN_HPP_NOEXCEPT
39223       : m_privateDataSlotEXT(VK_NULL_HANDLE)
39224     {}
39225 
PrivateDataSlotEXT(std::nullptr_t)39226     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
39227       : m_privateDataSlotEXT(VK_NULL_HANDLE)
39228     {}
39229 
PrivateDataSlotEXT(VkPrivateDataSlotEXT privateDataSlotEXT)39230     VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT
39231       : m_privateDataSlotEXT( privateDataSlotEXT )
39232     {}
39233 
39234 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPrivateDataSlotEXT privateDataSlotEXT)39235     PrivateDataSlotEXT & operator=(VkPrivateDataSlotEXT privateDataSlotEXT) VULKAN_HPP_NOEXCEPT
39236     {
39237       m_privateDataSlotEXT = privateDataSlotEXT;
39238       return *this;
39239     }
39240 #endif
39241 
operator =(std::nullptr_t)39242     PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
39243     {
39244       m_privateDataSlotEXT = VK_NULL_HANDLE;
39245       return *this;
39246     }
39247 
39248 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39249     auto operator<=>( PrivateDataSlotEXT const& ) const = default;
39250 #else
operator ==(PrivateDataSlotEXT const & rhs) const39251     bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39252     {
39253       return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT;
39254     }
39255 
operator !=(PrivateDataSlotEXT const & rhs) const39256     bool operator!=(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39257     {
39258       return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT;
39259     }
39260 
operator <(PrivateDataSlotEXT const & rhs) const39261     bool operator<(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39262     {
39263       return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT;
39264     }
39265 #endif
39266 
operator VkPrivateDataSlotEXT() const39267     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT
39268     {
39269       return m_privateDataSlotEXT;
39270     }
39271 
operator bool() const39272     explicit operator bool() const VULKAN_HPP_NOEXCEPT
39273     {
39274       return m_privateDataSlotEXT != VK_NULL_HANDLE;
39275     }
39276 
operator !() const39277     bool operator!() const VULKAN_HPP_NOEXCEPT
39278     {
39279       return m_privateDataSlotEXT == VK_NULL_HANDLE;
39280     }
39281 
39282   private:
39283     VkPrivateDataSlotEXT m_privateDataSlotEXT;
39284   };
39285   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), "handle and wrapper have different size!" );
39286 
39287   template <>
39288   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePrivateDataSlotEXT>
39289   {
39290     using type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
39291   };
39292 
39293   template <>
39294   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT>
39295   {
39296     using Type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
39297   };
39298 
39299 
39300 
39301   template <>
39302   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
39303   {
39304     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
39305   };
39306 
39307   struct QueryPoolCreateInfo
39308   {
39309     static const bool allowDuplicate = false;
39310     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
39311 
39312 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39313     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
39314     : flags( flags_ ), queryType( queryType_ ), queryCount( queryCount_ ), pipelineStatistics( pipelineStatistics_ )
39315     {}
39316 
39317     VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39318 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39319     QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39320     {
39321       *this = rhs;
39322     }
39323 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39324 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39325     QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39326     {
39327       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>( &rhs );
39328       return *this;
39329     }
39330 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39331     QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39332     {
39333       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolCreateInfo ) );
39334       return *this;
39335     }
39336 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39337     QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39338     {
39339       pNext = pNext_;
39340       return *this;
39341     }
39342 
setFlagsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39343     QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39344     {
39345       flags = flags_;
39346       return *this;
39347     }
39348 
setQueryTypeVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39349     QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
39350     {
39351       queryType = queryType_;
39352       return *this;
39353     }
39354 
setQueryCountVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39355     QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
39356     {
39357       queryCount = queryCount_;
39358       return *this;
39359     }
39360 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39361     QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
39362     {
39363       pipelineStatistics = pipelineStatistics_;
39364       return *this;
39365     }
39366 
39367 
operator VkQueryPoolCreateInfo const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39368     operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39369     {
39370       return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
39371     }
39372 
operator VkQueryPoolCreateInfo&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39373     operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
39374     {
39375       return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
39376     }
39377 
39378 
39379 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39380     auto operator<=>( QueryPoolCreateInfo const& ) const = default;
39381 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39382     bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39383     {
39384       return ( sType == rhs.sType )
39385           && ( pNext == rhs.pNext )
39386           && ( flags == rhs.flags )
39387           && ( queryType == rhs.queryType )
39388           && ( queryCount == rhs.queryCount )
39389           && ( pipelineStatistics == rhs.pipelineStatistics );
39390     }
39391 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39392     bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39393     {
39394       return !operator==( rhs );
39395     }
39396 #endif
39397 
39398 
39399 
39400   public:
39401     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
39402     const void* pNext = {};
39403     VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
39404     VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
39405     uint32_t queryCount = {};
39406     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
39407 
39408   };
39409   static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
39410   static_assert( std::is_standard_layout<QueryPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
39411 
39412   template <>
39413   struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
39414   {
39415     using Type = QueryPoolCreateInfo;
39416   };
39417 
39418 #ifdef VK_ENABLE_BETA_EXTENSIONS
39419   struct RayTracingShaderGroupCreateInfoKHR
39420   {
39421     static const bool allowDuplicate = false;
39422     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
39423 
39424 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39425     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
39426     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ), pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
39427     {}
39428 
39429     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39430 
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39431     RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39432     {
39433       *this = rhs;
39434     }
39435 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39436 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39437     RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39438     {
39439       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>( &rhs );
39440       return *this;
39441     }
39442 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39443     RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39444     {
39445       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoKHR ) );
39446       return *this;
39447     }
39448 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39449     RayTracingShaderGroupCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39450     {
39451       pNext = pNext_;
39452       return *this;
39453     }
39454 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39455     RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
39456     {
39457       type = type_;
39458       return *this;
39459     }
39460 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39461     RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
39462     {
39463       generalShader = generalShader_;
39464       return *this;
39465     }
39466 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39467     RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
39468     {
39469       closestHitShader = closestHitShader_;
39470       return *this;
39471     }
39472 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39473     RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
39474     {
39475       anyHitShader = anyHitShader_;
39476       return *this;
39477     }
39478 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39479     RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
39480     {
39481       intersectionShader = intersectionShader_;
39482       return *this;
39483     }
39484 
setPShaderGroupCaptureReplayHandleVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39485     RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void* pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
39486     {
39487       pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
39488       return *this;
39489     }
39490 
39491 
operator VkRayTracingShaderGroupCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39492     operator VkRayTracingShaderGroupCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39493     {
39494       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR*>( this );
39495     }
39496 
operator VkRayTracingShaderGroupCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39497     operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39498     {
39499       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR*>( this );
39500     }
39501 
39502 
39503 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39504     auto operator<=>( RayTracingShaderGroupCreateInfoKHR const& ) const = default;
39505 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39506     bool operator==( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39507     {
39508       return ( sType == rhs.sType )
39509           && ( pNext == rhs.pNext )
39510           && ( type == rhs.type )
39511           && ( generalShader == rhs.generalShader )
39512           && ( closestHitShader == rhs.closestHitShader )
39513           && ( anyHitShader == rhs.anyHitShader )
39514           && ( intersectionShader == rhs.intersectionShader )
39515           && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
39516     }
39517 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39518     bool operator!=( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39519     {
39520       return !operator==( rhs );
39521     }
39522 #endif
39523 
39524 
39525 
39526   public:
39527     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
39528     const void* pNext = {};
39529     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
39530     uint32_t generalShader = {};
39531     uint32_t closestHitShader = {};
39532     uint32_t anyHitShader = {};
39533     uint32_t intersectionShader = {};
39534     const void* pShaderGroupCaptureReplayHandle = {};
39535 
39536   };
39537   static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), "struct and wrapper have different size!" );
39538   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39539 
39540   template <>
39541   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
39542   {
39543     using Type = RayTracingShaderGroupCreateInfoKHR;
39544   };
39545 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39546 
39547 #ifdef VK_ENABLE_BETA_EXTENSIONS
39548   struct PipelineLibraryCreateInfoKHR
39549   {
39550     static const bool allowDuplicate = false;
39551     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
39552 
39553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39554     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR(uint32_t libraryCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ = {}) VULKAN_HPP_NOEXCEPT
39555     : libraryCount( libraryCount_ ), pLibraries( pLibraries_ )
39556     {}
39557 
39558     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39559 
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39560     PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39561     {
39562       *this = rhs;
39563     }
39564 
39565 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39566     PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ )
39567     : libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
39568     {}
39569 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39570 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39571 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39572     PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39573     {
39574       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
39575       return *this;
39576     }
39577 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39578     PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39579     {
39580       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineLibraryCreateInfoKHR ) );
39581       return *this;
39582     }
39583 
setPNextVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39584     PipelineLibraryCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39585     {
39586       pNext = pNext_;
39587       return *this;
39588     }
39589 
setLibraryCountVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39590     PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
39591     {
39592       libraryCount = libraryCount_;
39593       return *this;
39594     }
39595 
setPLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39596     PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ ) VULKAN_HPP_NOEXCEPT
39597     {
39598       pLibraries = pLibraries_;
39599       return *this;
39600     }
39601 
39602 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39603     PipelineLibraryCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
39604     {
39605       libraryCount = static_cast<uint32_t>( libraries_.size() );
39606       pLibraries = libraries_.data();
39607       return *this;
39608     }
39609 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39610 
39611 
operator VkPipelineLibraryCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39612     operator VkPipelineLibraryCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39613     {
39614       return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>( this );
39615     }
39616 
operator VkPipelineLibraryCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39617     operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39618     {
39619       return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>( this );
39620     }
39621 
39622 
39623 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39624     auto operator<=>( PipelineLibraryCreateInfoKHR const& ) const = default;
39625 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39626     bool operator==( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39627     {
39628       return ( sType == rhs.sType )
39629           && ( pNext == rhs.pNext )
39630           && ( libraryCount == rhs.libraryCount )
39631           && ( pLibraries == rhs.pLibraries );
39632     }
39633 
operator !=VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39634     bool operator!=( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39635     {
39636       return !operator==( rhs );
39637     }
39638 #endif
39639 
39640 
39641 
39642   public:
39643     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
39644     const void* pNext = {};
39645     uint32_t libraryCount = {};
39646     const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries = {};
39647 
39648   };
39649   static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), "struct and wrapper have different size!" );
39650   static_assert( std::is_standard_layout<PipelineLibraryCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39651 
39652   template <>
39653   struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
39654   {
39655     using Type = PipelineLibraryCreateInfoKHR;
39656   };
39657 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39658 
39659 #ifdef VK_ENABLE_BETA_EXTENSIONS
39660   struct RayTracingPipelineInterfaceCreateInfoKHR
39661   {
39662     static const bool allowDuplicate = false;
39663     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
39664 
39665 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39666     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR(uint32_t maxPayloadSize_ = {}, uint32_t maxAttributeSize_ = {}, uint32_t maxCallableSize_ = {}) VULKAN_HPP_NOEXCEPT
39667     : maxPayloadSize( maxPayloadSize_ ), maxAttributeSize( maxAttributeSize_ ), maxCallableSize( maxCallableSize_ )
39668     {}
39669 
39670     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39671 
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39672     RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39673     {
39674       *this = rhs;
39675     }
39676 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39677 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39678     RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39679     {
39680       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs );
39681       return *this;
39682     }
39683 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39684     RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39685     {
39686       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) );
39687       return *this;
39688     }
39689 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39690     RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39691     {
39692       pNext = pNext_;
39693       return *this;
39694     }
39695 
setMaxPayloadSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39696     RayTracingPipelineInterfaceCreateInfoKHR & setMaxPayloadSize( uint32_t maxPayloadSize_ ) VULKAN_HPP_NOEXCEPT
39697     {
39698       maxPayloadSize = maxPayloadSize_;
39699       return *this;
39700     }
39701 
setMaxAttributeSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39702     RayTracingPipelineInterfaceCreateInfoKHR & setMaxAttributeSize( uint32_t maxAttributeSize_ ) VULKAN_HPP_NOEXCEPT
39703     {
39704       maxAttributeSize = maxAttributeSize_;
39705       return *this;
39706     }
39707 
setMaxCallableSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39708     RayTracingPipelineInterfaceCreateInfoKHR & setMaxCallableSize( uint32_t maxCallableSize_ ) VULKAN_HPP_NOEXCEPT
39709     {
39710       maxCallableSize = maxCallableSize_;
39711       return *this;
39712     }
39713 
39714 
operator VkRayTracingPipelineInterfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39715     operator VkRayTracingPipelineInterfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39716     {
39717       return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
39718     }
39719 
operator VkRayTracingPipelineInterfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39720     operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39721     {
39722       return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
39723     }
39724 
39725 
39726 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39727     auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const& ) const = default;
39728 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39729     bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39730     {
39731       return ( sType == rhs.sType )
39732           && ( pNext == rhs.pNext )
39733           && ( maxPayloadSize == rhs.maxPayloadSize )
39734           && ( maxAttributeSize == rhs.maxAttributeSize )
39735           && ( maxCallableSize == rhs.maxCallableSize );
39736     }
39737 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39738     bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39739     {
39740       return !operator==( rhs );
39741     }
39742 #endif
39743 
39744 
39745 
39746   public:
39747     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
39748     const void* pNext = {};
39749     uint32_t maxPayloadSize = {};
39750     uint32_t maxAttributeSize = {};
39751     uint32_t maxCallableSize = {};
39752 
39753   };
39754   static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), "struct and wrapper have different size!" );
39755   static_assert( std::is_standard_layout<RayTracingPipelineInterfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39756 
39757   template <>
39758   struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
39759   {
39760     using Type = RayTracingPipelineInterfaceCreateInfoKHR;
39761   };
39762 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39763 
39764 #ifdef VK_ENABLE_BETA_EXTENSIONS
39765   struct RayTracingPipelineCreateInfoKHR
39766   {
39767     static const bool allowDuplicate = false;
39768     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
39769 
39770 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39771     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
39772     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), libraries( libraries_ ), pLibraryInterface( pLibraryInterface_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
39773     {}
39774 
39775     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39776 
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39777     RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39778     {
39779       *this = rhs;
39780     }
39781 
39782 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39783     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_ = {} )
39784     : 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_ )
39785     {}
39786 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39787 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39788 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39789     RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39790     {
39791       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>( &rhs );
39792       return *this;
39793     }
39794 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39795     RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39796     {
39797       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineCreateInfoKHR ) );
39798       return *this;
39799     }
39800 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39801     RayTracingPipelineCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39802     {
39803       pNext = pNext_;
39804       return *this;
39805     }
39806 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39807     RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39808     {
39809       flags = flags_;
39810       return *this;
39811     }
39812 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39813     RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
39814     {
39815       stageCount = stageCount_;
39816       return *this;
39817     }
39818 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39819     RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
39820     {
39821       pStages = pStages_;
39822       return *this;
39823     }
39824 
39825 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39826     RayTracingPipelineCreateInfoKHR & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
39827     {
39828       stageCount = static_cast<uint32_t>( stages_.size() );
39829       pStages = stages_.data();
39830       return *this;
39831     }
39832 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39833 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39834     RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
39835     {
39836       groupCount = groupCount_;
39837       return *this;
39838     }
39839 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39840     RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ ) VULKAN_HPP_NOEXCEPT
39841     {
39842       pGroups = pGroups_;
39843       return *this;
39844     }
39845 
39846 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39847     RayTracingPipelineCreateInfoKHR & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
39848     {
39849       groupCount = static_cast<uint32_t>( groups_.size() );
39850       pGroups = groups_.data();
39851       return *this;
39852     }
39853 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39854 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39855     RayTracingPipelineCreateInfoKHR & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
39856     {
39857       maxRecursionDepth = maxRecursionDepth_;
39858       return *this;
39859     }
39860 
setLibrariesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39861     RayTracingPipelineCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & libraries_ ) VULKAN_HPP_NOEXCEPT
39862     {
39863       libraries = libraries_;
39864       return *this;
39865     }
39866 
setPLibraryInterfaceVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39867     RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
39868     {
39869       pLibraryInterface = pLibraryInterface_;
39870       return *this;
39871     }
39872 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39873     RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
39874     {
39875       layout = layout_;
39876       return *this;
39877     }
39878 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39879     RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
39880     {
39881       basePipelineHandle = basePipelineHandle_;
39882       return *this;
39883     }
39884 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39885     RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
39886     {
39887       basePipelineIndex = basePipelineIndex_;
39888       return *this;
39889     }
39890 
39891 
operator VkRayTracingPipelineCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39892     operator VkRayTracingPipelineCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39893     {
39894       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( this );
39895     }
39896 
operator VkRayTracingPipelineCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39897     operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39898     {
39899       return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR*>( this );
39900     }
39901 
39902 
39903 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39904     auto operator<=>( RayTracingPipelineCreateInfoKHR const& ) const = default;
39905 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39906     bool operator==( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39907     {
39908       return ( sType == rhs.sType )
39909           && ( pNext == rhs.pNext )
39910           && ( flags == rhs.flags )
39911           && ( stageCount == rhs.stageCount )
39912           && ( pStages == rhs.pStages )
39913           && ( groupCount == rhs.groupCount )
39914           && ( pGroups == rhs.pGroups )
39915           && ( maxRecursionDepth == rhs.maxRecursionDepth )
39916           && ( libraries == rhs.libraries )
39917           && ( pLibraryInterface == rhs.pLibraryInterface )
39918           && ( layout == rhs.layout )
39919           && ( basePipelineHandle == rhs.basePipelineHandle )
39920           && ( basePipelineIndex == rhs.basePipelineIndex );
39921     }
39922 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR39923     bool operator!=( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39924     {
39925       return !operator==( rhs );
39926     }
39927 #endif
39928 
39929 
39930 
39931   public:
39932     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
39933     const void* pNext = {};
39934     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
39935     uint32_t stageCount = {};
39936     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
39937     uint32_t groupCount = {};
39938     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups = {};
39939     uint32_t maxRecursionDepth = {};
39940     VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries = {};
39941     const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface = {};
39942     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
39943     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
39944     int32_t basePipelineIndex = {};
39945 
39946   };
39947   static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), "struct and wrapper have different size!" );
39948   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39949 
39950   template <>
39951   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
39952   {
39953     using Type = RayTracingPipelineCreateInfoKHR;
39954   };
39955 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39956 
39957   struct RayTracingShaderGroupCreateInfoNV
39958   {
39959     static const bool allowDuplicate = false;
39960     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
39961 
39962 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV39963     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
39964     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ )
39965     {}
39966 
39967     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39968 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV39969     RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39970     {
39971       *this = rhs;
39972     }
39973 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39974 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV39975     RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39976     {
39977       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>( &rhs );
39978       return *this;
39979     }
39980 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV39981     RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
39982     {
39983       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoNV ) );
39984       return *this;
39985     }
39986 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV39987     RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39988     {
39989       pNext = pNext_;
39990       return *this;
39991     }
39992 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV39993     RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
39994     {
39995       type = type_;
39996       return *this;
39997     }
39998 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV39999     RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
40000     {
40001       generalShader = generalShader_;
40002       return *this;
40003     }
40004 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40005     RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
40006     {
40007       closestHitShader = closestHitShader_;
40008       return *this;
40009     }
40010 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40011     RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
40012     {
40013       anyHitShader = anyHitShader_;
40014       return *this;
40015     }
40016 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40017     RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
40018     {
40019       intersectionShader = intersectionShader_;
40020       return *this;
40021     }
40022 
40023 
operator VkRayTracingShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40024     operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
40025     {
40026       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
40027     }
40028 
operator VkRayTracingShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40029     operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
40030     {
40031       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
40032     }
40033 
40034 
40035 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40036     auto operator<=>( RayTracingShaderGroupCreateInfoNV const& ) const = default;
40037 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40038     bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40039     {
40040       return ( sType == rhs.sType )
40041           && ( pNext == rhs.pNext )
40042           && ( type == rhs.type )
40043           && ( generalShader == rhs.generalShader )
40044           && ( closestHitShader == rhs.closestHitShader )
40045           && ( anyHitShader == rhs.anyHitShader )
40046           && ( intersectionShader == rhs.intersectionShader );
40047     }
40048 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40049     bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40050     {
40051       return !operator==( rhs );
40052     }
40053 #endif
40054 
40055 
40056 
40057   public:
40058     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
40059     const void* pNext = {};
40060     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
40061     uint32_t generalShader = {};
40062     uint32_t closestHitShader = {};
40063     uint32_t anyHitShader = {};
40064     uint32_t intersectionShader = {};
40065 
40066   };
40067   static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
40068   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
40069 
40070   template <>
40071   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
40072   {
40073     using Type = RayTracingShaderGroupCreateInfoNV;
40074   };
40075 
40076   struct RayTracingPipelineCreateInfoNV
40077   {
40078     static const bool allowDuplicate = false;
40079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
40080 
40081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40082     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
40083     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40084     {}
40085 
40086     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40087 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40088     RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40089     {
40090       *this = rhs;
40091     }
40092 
40093 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40094     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_ = {} )
40095     : 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_ )
40096     {}
40097 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40098 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40099 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40100     RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40101     {
40102       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>( &rhs );
40103       return *this;
40104     }
40105 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40106     RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40107     {
40108       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineCreateInfoNV ) );
40109       return *this;
40110     }
40111 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40112     RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40113     {
40114       pNext = pNext_;
40115       return *this;
40116     }
40117 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40118     RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40119     {
40120       flags = flags_;
40121       return *this;
40122     }
40123 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40124     RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
40125     {
40126       stageCount = stageCount_;
40127       return *this;
40128     }
40129 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40130     RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
40131     {
40132       pStages = pStages_;
40133       return *this;
40134     }
40135 
40136 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40137     RayTracingPipelineCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
40138     {
40139       stageCount = static_cast<uint32_t>( stages_.size() );
40140       pStages = stages_.data();
40141       return *this;
40142     }
40143 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40144 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40145     RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
40146     {
40147       groupCount = groupCount_;
40148       return *this;
40149     }
40150 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40151     RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
40152     {
40153       pGroups = pGroups_;
40154       return *this;
40155     }
40156 
40157 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40158     RayTracingPipelineCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
40159     {
40160       groupCount = static_cast<uint32_t>( groups_.size() );
40161       pGroups = groups_.data();
40162       return *this;
40163     }
40164 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40165 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40166     RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
40167     {
40168       maxRecursionDepth = maxRecursionDepth_;
40169       return *this;
40170     }
40171 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40172     RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
40173     {
40174       layout = layout_;
40175       return *this;
40176     }
40177 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40178     RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
40179     {
40180       basePipelineHandle = basePipelineHandle_;
40181       return *this;
40182     }
40183 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40184     RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
40185     {
40186       basePipelineIndex = basePipelineIndex_;
40187       return *this;
40188     }
40189 
40190 
operator VkRayTracingPipelineCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40191     operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
40192     {
40193       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
40194     }
40195 
operator VkRayTracingPipelineCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40196     operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
40197     {
40198       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
40199     }
40200 
40201 
40202 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40203     auto operator<=>( RayTracingPipelineCreateInfoNV const& ) const = default;
40204 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40205     bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40206     {
40207       return ( sType == rhs.sType )
40208           && ( pNext == rhs.pNext )
40209           && ( flags == rhs.flags )
40210           && ( stageCount == rhs.stageCount )
40211           && ( pStages == rhs.pStages )
40212           && ( groupCount == rhs.groupCount )
40213           && ( pGroups == rhs.pGroups )
40214           && ( maxRecursionDepth == rhs.maxRecursionDepth )
40215           && ( layout == rhs.layout )
40216           && ( basePipelineHandle == rhs.basePipelineHandle )
40217           && ( basePipelineIndex == rhs.basePipelineIndex );
40218     }
40219 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40220     bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40221     {
40222       return !operator==( rhs );
40223     }
40224 #endif
40225 
40226 
40227 
40228   public:
40229     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
40230     const void* pNext = {};
40231     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
40232     uint32_t stageCount = {};
40233     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
40234     uint32_t groupCount = {};
40235     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {};
40236     uint32_t maxRecursionDepth = {};
40237     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
40238     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
40239     int32_t basePipelineIndex = {};
40240 
40241   };
40242   static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" );
40243   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
40244 
40245   template <>
40246   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
40247   {
40248     using Type = RayTracingPipelineCreateInfoNV;
40249   };
40250 
40251   struct SubpassDescription
40252   {
40253 
40254 
40255 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40256     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
40257     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
40258     {}
40259 
40260     VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40261 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40262     SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40263     {
40264       *this = rhs;
40265     }
40266 
40267 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40268     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_ = {} )
40269     : 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() )
40270     {
40271 #ifdef VULKAN_HPP_NO_EXCEPTIONS
40272       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
40273 #else
40274       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
40275       {
40276         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
40277       }
40278 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
40279     }
40280 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40281 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40282 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription40283     SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40284     {
40285       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>( &rhs );
40286       return *this;
40287     }
40288 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription40289     SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40290     {
40291       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescription ) );
40292       return *this;
40293     }
40294 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription40295     SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
40296     {
40297       flags = flags_;
40298       return *this;
40299     }
40300 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription40301     SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
40302     {
40303       pipelineBindPoint = pipelineBindPoint_;
40304       return *this;
40305     }
40306 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40307     SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40308     {
40309       inputAttachmentCount = inputAttachmentCount_;
40310       return *this;
40311     }
40312 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40313     SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
40314     {
40315       pInputAttachments = pInputAttachments_;
40316       return *this;
40317     }
40318 
40319 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40320     SubpassDescription & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
40321     {
40322       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
40323       pInputAttachments = inputAttachments_.data();
40324       return *this;
40325     }
40326 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40327 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40328     SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40329     {
40330       colorAttachmentCount = colorAttachmentCount_;
40331       return *this;
40332     }
40333 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40334     SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
40335     {
40336       pColorAttachments = pColorAttachments_;
40337       return *this;
40338     }
40339 
40340 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40341     SubpassDescription & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
40342     {
40343       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
40344       pColorAttachments = colorAttachments_.data();
40345       return *this;
40346     }
40347 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40348 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40349     SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40350     {
40351       pResolveAttachments = pResolveAttachments_;
40352       return *this;
40353     }
40354 
40355 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40356     SubpassDescription & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40357     {
40358       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
40359       pResolveAttachments = resolveAttachments_.data();
40360       return *this;
40361     }
40362 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40363 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription40364     SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
40365     {
40366       pDepthStencilAttachment = pDepthStencilAttachment_;
40367       return *this;
40368     }
40369 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40370     SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40371     {
40372       preserveAttachmentCount = preserveAttachmentCount_;
40373       return *this;
40374     }
40375 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40376     SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40377     {
40378       pPreserveAttachments = pPreserveAttachments_;
40379       return *this;
40380     }
40381 
40382 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40383     SubpassDescription & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40384     {
40385       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
40386       pPreserveAttachments = preserveAttachments_.data();
40387       return *this;
40388     }
40389 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40390 
40391 
operator VkSubpassDescription const&VULKAN_HPP_NAMESPACE::SubpassDescription40392     operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT
40393     {
40394       return *reinterpret_cast<const VkSubpassDescription*>( this );
40395     }
40396 
operator VkSubpassDescription&VULKAN_HPP_NAMESPACE::SubpassDescription40397     operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
40398     {
40399       return *reinterpret_cast<VkSubpassDescription*>( this );
40400     }
40401 
40402 
40403 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40404     auto operator<=>( SubpassDescription const& ) const = default;
40405 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription40406     bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40407     {
40408       return ( flags == rhs.flags )
40409           && ( pipelineBindPoint == rhs.pipelineBindPoint )
40410           && ( inputAttachmentCount == rhs.inputAttachmentCount )
40411           && ( pInputAttachments == rhs.pInputAttachments )
40412           && ( colorAttachmentCount == rhs.colorAttachmentCount )
40413           && ( pColorAttachments == rhs.pColorAttachments )
40414           && ( pResolveAttachments == rhs.pResolveAttachments )
40415           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
40416           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
40417           && ( pPreserveAttachments == rhs.pPreserveAttachments );
40418     }
40419 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription40420     bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40421     {
40422       return !operator==( rhs );
40423     }
40424 #endif
40425 
40426 
40427 
40428   public:
40429     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
40430     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
40431     uint32_t inputAttachmentCount = {};
40432     const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {};
40433     uint32_t colorAttachmentCount = {};
40434     const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {};
40435     const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {};
40436     const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {};
40437     uint32_t preserveAttachmentCount = {};
40438     const uint32_t* pPreserveAttachments = {};
40439 
40440   };
40441   static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" );
40442   static_assert( std::is_standard_layout<SubpassDescription>::value, "struct wrapper is not a standard layout!" );
40443 
40444   struct SubpassDependency
40445   {
40446 
40447 
40448 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency40449     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
40450     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ )
40451     {}
40452 
40453     VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40454 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency40455     SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40456     {
40457       *this = rhs;
40458     }
40459 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40460 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency40461     SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40462     {
40463       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>( &rhs );
40464       return *this;
40465     }
40466 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency40467     SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40468     {
40469       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDependency ) );
40470       return *this;
40471     }
40472 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency40473     SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
40474     {
40475       srcSubpass = srcSubpass_;
40476       return *this;
40477     }
40478 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency40479     SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
40480     {
40481       dstSubpass = dstSubpass_;
40482       return *this;
40483     }
40484 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency40485     SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
40486     {
40487       srcStageMask = srcStageMask_;
40488       return *this;
40489     }
40490 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency40491     SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
40492     {
40493       dstStageMask = dstStageMask_;
40494       return *this;
40495     }
40496 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency40497     SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
40498     {
40499       srcAccessMask = srcAccessMask_;
40500       return *this;
40501     }
40502 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency40503     SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
40504     {
40505       dstAccessMask = dstAccessMask_;
40506       return *this;
40507     }
40508 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency40509     SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
40510     {
40511       dependencyFlags = dependencyFlags_;
40512       return *this;
40513     }
40514 
40515 
operator VkSubpassDependency const&VULKAN_HPP_NAMESPACE::SubpassDependency40516     operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT
40517     {
40518       return *reinterpret_cast<const VkSubpassDependency*>( this );
40519     }
40520 
operator VkSubpassDependency&VULKAN_HPP_NAMESPACE::SubpassDependency40521     operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
40522     {
40523       return *reinterpret_cast<VkSubpassDependency*>( this );
40524     }
40525 
40526 
40527 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40528     auto operator<=>( SubpassDependency const& ) const = default;
40529 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency40530     bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
40531     {
40532       return ( srcSubpass == rhs.srcSubpass )
40533           && ( dstSubpass == rhs.dstSubpass )
40534           && ( srcStageMask == rhs.srcStageMask )
40535           && ( dstStageMask == rhs.dstStageMask )
40536           && ( srcAccessMask == rhs.srcAccessMask )
40537           && ( dstAccessMask == rhs.dstAccessMask )
40538           && ( dependencyFlags == rhs.dependencyFlags );
40539     }
40540 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency40541     bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
40542     {
40543       return !operator==( rhs );
40544     }
40545 #endif
40546 
40547 
40548 
40549   public:
40550     uint32_t srcSubpass = {};
40551     uint32_t dstSubpass = {};
40552     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
40553     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
40554     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
40555     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
40556     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
40557 
40558   };
40559   static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" );
40560   static_assert( std::is_standard_layout<SubpassDependency>::value, "struct wrapper is not a standard layout!" );
40561 
40562   struct RenderPassCreateInfo
40563   {
40564     static const bool allowDuplicate = false;
40565     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
40566 
40567 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40568     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
40569     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ )
40570     {}
40571 
40572     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40573 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40574     RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40575     {
40576       *this = rhs;
40577     }
40578 
40579 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40580     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_ = {} )
40581     : 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() )
40582     {}
40583 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40584 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40585 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40586     RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40587     {
40588       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>( &rhs );
40589       return *this;
40590     }
40591 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40592     RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40593     {
40594       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassCreateInfo ) );
40595       return *this;
40596     }
40597 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40598     RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40599     {
40600       pNext = pNext_;
40601       return *this;
40602     }
40603 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40604     RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40605     {
40606       flags = flags_;
40607       return *this;
40608     }
40609 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40610     RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
40611     {
40612       attachmentCount = attachmentCount_;
40613       return *this;
40614     }
40615 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40616     RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT
40617     {
40618       pAttachments = pAttachments_;
40619       return *this;
40620     }
40621 
40622 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40623     RenderPassCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_ ) VULKAN_HPP_NOEXCEPT
40624     {
40625       attachmentCount = static_cast<uint32_t>( attachments_.size() );
40626       pAttachments = attachments_.data();
40627       return *this;
40628     }
40629 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40630 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40631     RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
40632     {
40633       subpassCount = subpassCount_;
40634       return *this;
40635     }
40636 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40637     RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
40638     {
40639       pSubpasses = pSubpasses_;
40640       return *this;
40641     }
40642 
40643 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40644     RenderPassCreateInfo & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
40645     {
40646       subpassCount = static_cast<uint32_t>( subpasses_.size() );
40647       pSubpasses = subpasses_.data();
40648       return *this;
40649     }
40650 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40651 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40652     RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
40653     {
40654       dependencyCount = dependencyCount_;
40655       return *this;
40656     }
40657 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40658     RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT
40659     {
40660       pDependencies = pDependencies_;
40661       return *this;
40662     }
40663 
40664 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40665     RenderPassCreateInfo & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
40666     {
40667       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
40668       pDependencies = dependencies_.data();
40669       return *this;
40670     }
40671 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40672 
40673 
operator VkRenderPassCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40674     operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40675     {
40676       return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
40677     }
40678 
operator VkRenderPassCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40679     operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
40680     {
40681       return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
40682     }
40683 
40684 
40685 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40686     auto operator<=>( RenderPassCreateInfo const& ) const = default;
40687 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40688     bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40689     {
40690       return ( sType == rhs.sType )
40691           && ( pNext == rhs.pNext )
40692           && ( flags == rhs.flags )
40693           && ( attachmentCount == rhs.attachmentCount )
40694           && ( pAttachments == rhs.pAttachments )
40695           && ( subpassCount == rhs.subpassCount )
40696           && ( pSubpasses == rhs.pSubpasses )
40697           && ( dependencyCount == rhs.dependencyCount )
40698           && ( pDependencies == rhs.pDependencies );
40699     }
40700 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40701     bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40702     {
40703       return !operator==( rhs );
40704     }
40705 #endif
40706 
40707 
40708 
40709   public:
40710     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
40711     const void* pNext = {};
40712     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
40713     uint32_t attachmentCount = {};
40714     const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {};
40715     uint32_t subpassCount = {};
40716     const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {};
40717     uint32_t dependencyCount = {};
40718     const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {};
40719 
40720   };
40721   static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
40722   static_assert( std::is_standard_layout<RenderPassCreateInfo>::value, "struct wrapper is not a standard layout!" );
40723 
40724   template <>
40725   struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
40726   {
40727     using Type = RenderPassCreateInfo;
40728   };
40729 
40730   struct SubpassDescription2
40731   {
40732     static const bool allowDuplicate = false;
40733     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
40734 
40735 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240736     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
40737     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
40738     {}
40739 
40740     VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40741 
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240742     SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
40743     {
40744       *this = rhs;
40745     }
40746 
40747 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240748     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_ = {} )
40749     : 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() )
40750     {
40751 #ifdef VULKAN_HPP_NO_EXCEPTIONS
40752       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
40753 #else
40754       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
40755       {
40756         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
40757       }
40758 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
40759     }
40760 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40761 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40762 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription240763     SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
40764     {
40765       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>( &rhs );
40766       return *this;
40767     }
40768 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription240769     SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
40770     {
40771       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescription2 ) );
40772       return *this;
40773     }
40774 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescription240775     SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40776     {
40777       pNext = pNext_;
40778       return *this;
40779     }
40780 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription240781     SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
40782     {
40783       flags = flags_;
40784       return *this;
40785     }
40786 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription240787     SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
40788     {
40789       pipelineBindPoint = pipelineBindPoint_;
40790       return *this;
40791     }
40792 
setViewMaskVULKAN_HPP_NAMESPACE::SubpassDescription240793     SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
40794     {
40795       viewMask = viewMask_;
40796       return *this;
40797     }
40798 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription240799     SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40800     {
40801       inputAttachmentCount = inputAttachmentCount_;
40802       return *this;
40803     }
40804 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240805     SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
40806     {
40807       pInputAttachments = pInputAttachments_;
40808       return *this;
40809     }
40810 
40811 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240812     SubpassDescription2 & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
40813     {
40814       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
40815       pInputAttachments = inputAttachments_.data();
40816       return *this;
40817     }
40818 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40819 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription240820     SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40821     {
40822       colorAttachmentCount = colorAttachmentCount_;
40823       return *this;
40824     }
40825 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240826     SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
40827     {
40828       pColorAttachments = pColorAttachments_;
40829       return *this;
40830     }
40831 
40832 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240833     SubpassDescription2 & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
40834     {
40835       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
40836       pColorAttachments = colorAttachments_.data();
40837       return *this;
40838     }
40839 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40840 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240841     SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40842     {
40843       pResolveAttachments = pResolveAttachments_;
40844       return *this;
40845     }
40846 
40847 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240848     SubpassDescription2 & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40849     {
40850       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
40851       pResolveAttachments = resolveAttachments_.data();
40852       return *this;
40853     }
40854 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40855 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription240856     SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
40857     {
40858       pDepthStencilAttachment = pDepthStencilAttachment_;
40859       return *this;
40860     }
40861 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription240862     SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40863     {
40864       preserveAttachmentCount = preserveAttachmentCount_;
40865       return *this;
40866     }
40867 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240868     SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40869     {
40870       pPreserveAttachments = pPreserveAttachments_;
40871       return *this;
40872     }
40873 
40874 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription240875     SubpassDescription2 & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40876     {
40877       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
40878       pPreserveAttachments = preserveAttachments_.data();
40879       return *this;
40880     }
40881 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40882 
40883 
operator VkSubpassDescription2 const&VULKAN_HPP_NAMESPACE::SubpassDescription240884     operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT
40885     {
40886       return *reinterpret_cast<const VkSubpassDescription2*>( this );
40887     }
40888 
operator VkSubpassDescription2&VULKAN_HPP_NAMESPACE::SubpassDescription240889     operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
40890     {
40891       return *reinterpret_cast<VkSubpassDescription2*>( this );
40892     }
40893 
40894 
40895 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40896     auto operator<=>( SubpassDescription2 const& ) const = default;
40897 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription240898     bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
40899     {
40900       return ( sType == rhs.sType )
40901           && ( pNext == rhs.pNext )
40902           && ( flags == rhs.flags )
40903           && ( pipelineBindPoint == rhs.pipelineBindPoint )
40904           && ( viewMask == rhs.viewMask )
40905           && ( inputAttachmentCount == rhs.inputAttachmentCount )
40906           && ( pInputAttachments == rhs.pInputAttachments )
40907           && ( colorAttachmentCount == rhs.colorAttachmentCount )
40908           && ( pColorAttachments == rhs.pColorAttachments )
40909           && ( pResolveAttachments == rhs.pResolveAttachments )
40910           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
40911           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
40912           && ( pPreserveAttachments == rhs.pPreserveAttachments );
40913     }
40914 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription240915     bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
40916     {
40917       return !operator==( rhs );
40918     }
40919 #endif
40920 
40921 
40922 
40923   public:
40924     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
40925     const void* pNext = {};
40926     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
40927     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
40928     uint32_t viewMask = {};
40929     uint32_t inputAttachmentCount = {};
40930     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {};
40931     uint32_t colorAttachmentCount = {};
40932     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {};
40933     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {};
40934     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {};
40935     uint32_t preserveAttachmentCount = {};
40936     const uint32_t* pPreserveAttachments = {};
40937 
40938   };
40939   static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" );
40940   static_assert( std::is_standard_layout<SubpassDescription2>::value, "struct wrapper is not a standard layout!" );
40941 
40942   template <>
40943   struct CppType<StructureType, StructureType::eSubpassDescription2>
40944   {
40945     using Type = SubpassDescription2;
40946   };
40947   using SubpassDescription2KHR = SubpassDescription2;
40948 
40949   struct SubpassDependency2
40950   {
40951     static const bool allowDuplicate = false;
40952     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
40953 
40954 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency240955     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
40956     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ), viewOffset( viewOffset_ )
40957     {}
40958 
40959     VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40960 
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency240961     SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
40962     {
40963       *this = rhs;
40964     }
40965 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40966 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency240967     SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
40968     {
40969       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>( &rhs );
40970       return *this;
40971     }
40972 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency240973     SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
40974     {
40975       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDependency2 ) );
40976       return *this;
40977     }
40978 
setPNextVULKAN_HPP_NAMESPACE::SubpassDependency240979     SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40980     {
40981       pNext = pNext_;
40982       return *this;
40983     }
40984 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency240985     SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
40986     {
40987       srcSubpass = srcSubpass_;
40988       return *this;
40989     }
40990 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency240991     SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
40992     {
40993       dstSubpass = dstSubpass_;
40994       return *this;
40995     }
40996 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency240997     SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
40998     {
40999       srcStageMask = srcStageMask_;
41000       return *this;
41001     }
41002 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency241003     SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
41004     {
41005       dstStageMask = dstStageMask_;
41006       return *this;
41007     }
41008 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency241009     SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
41010     {
41011       srcAccessMask = srcAccessMask_;
41012       return *this;
41013     }
41014 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency241015     SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
41016     {
41017       dstAccessMask = dstAccessMask_;
41018       return *this;
41019     }
41020 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency241021     SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
41022     {
41023       dependencyFlags = dependencyFlags_;
41024       return *this;
41025     }
41026 
setViewOffsetVULKAN_HPP_NAMESPACE::SubpassDependency241027     SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
41028     {
41029       viewOffset = viewOffset_;
41030       return *this;
41031     }
41032 
41033 
operator VkSubpassDependency2 const&VULKAN_HPP_NAMESPACE::SubpassDependency241034     operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT
41035     {
41036       return *reinterpret_cast<const VkSubpassDependency2*>( this );
41037     }
41038 
operator VkSubpassDependency2&VULKAN_HPP_NAMESPACE::SubpassDependency241039     operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
41040     {
41041       return *reinterpret_cast<VkSubpassDependency2*>( this );
41042     }
41043 
41044 
41045 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41046     auto operator<=>( SubpassDependency2 const& ) const = default;
41047 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency241048     bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41049     {
41050       return ( sType == rhs.sType )
41051           && ( pNext == rhs.pNext )
41052           && ( srcSubpass == rhs.srcSubpass )
41053           && ( dstSubpass == rhs.dstSubpass )
41054           && ( srcStageMask == rhs.srcStageMask )
41055           && ( dstStageMask == rhs.dstStageMask )
41056           && ( srcAccessMask == rhs.srcAccessMask )
41057           && ( dstAccessMask == rhs.dstAccessMask )
41058           && ( dependencyFlags == rhs.dependencyFlags )
41059           && ( viewOffset == rhs.viewOffset );
41060     }
41061 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency241062     bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41063     {
41064       return !operator==( rhs );
41065     }
41066 #endif
41067 
41068 
41069 
41070   public:
41071     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
41072     const void* pNext = {};
41073     uint32_t srcSubpass = {};
41074     uint32_t dstSubpass = {};
41075     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
41076     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
41077     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
41078     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
41079     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
41080     int32_t viewOffset = {};
41081 
41082   };
41083   static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" );
41084   static_assert( std::is_standard_layout<SubpassDependency2>::value, "struct wrapper is not a standard layout!" );
41085 
41086   template <>
41087   struct CppType<StructureType, StructureType::eSubpassDependency2>
41088   {
41089     using Type = SubpassDependency2;
41090   };
41091   using SubpassDependency2KHR = SubpassDependency2;
41092 
41093   struct RenderPassCreateInfo2
41094   {
41095     static const bool allowDuplicate = false;
41096     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
41097 
41098 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241099     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
41100     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ), correlatedViewMaskCount( correlatedViewMaskCount_ ), pCorrelatedViewMasks( pCorrelatedViewMasks_ )
41101     {}
41102 
41103     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41104 
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241105     RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41106     {
41107       *this = rhs;
41108     }
41109 
41110 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241111     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_ = {} )
41112     : 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() )
41113     {}
41114 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41115 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41116 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241117     RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41118     {
41119       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>( &rhs );
41120       return *this;
41121     }
41122 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241123     RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41124     {
41125       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassCreateInfo2 ) );
41126       return *this;
41127     }
41128 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241129     RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41130     {
41131       pNext = pNext_;
41132       return *this;
41133     }
41134 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241135     RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41136     {
41137       flags = flags_;
41138       return *this;
41139     }
41140 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241141     RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
41142     {
41143       attachmentCount = attachmentCount_;
41144       return *this;
41145     }
41146 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241147     RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT
41148     {
41149       pAttachments = pAttachments_;
41150       return *this;
41151     }
41152 
41153 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241154     RenderPassCreateInfo2 & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_ ) VULKAN_HPP_NOEXCEPT
41155     {
41156       attachmentCount = static_cast<uint32_t>( attachments_.size() );
41157       pAttachments = attachments_.data();
41158       return *this;
41159     }
41160 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41161 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241162     RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
41163     {
41164       subpassCount = subpassCount_;
41165       return *this;
41166     }
41167 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241168     RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
41169     {
41170       pSubpasses = pSubpasses_;
41171       return *this;
41172     }
41173 
41174 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241175     RenderPassCreateInfo2 & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
41176     {
41177       subpassCount = static_cast<uint32_t>( subpasses_.size() );
41178       pSubpasses = subpasses_.data();
41179       return *this;
41180     }
41181 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41182 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241183     RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
41184     {
41185       dependencyCount = dependencyCount_;
41186       return *this;
41187     }
41188 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241189     RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT
41190     {
41191       pDependencies = pDependencies_;
41192       return *this;
41193     }
41194 
41195 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241196     RenderPassCreateInfo2 & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
41197     {
41198       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
41199       pDependencies = dependencies_.data();
41200       return *this;
41201     }
41202 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41203 
setCorrelatedViewMaskCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241204     RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
41205     {
41206       correlatedViewMaskCount = correlatedViewMaskCount_;
41207       return *this;
41208     }
41209 
setPCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241210     RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
41211     {
41212       pCorrelatedViewMasks = pCorrelatedViewMasks_;
41213       return *this;
41214     }
41215 
41216 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241217     RenderPassCreateInfo2 & setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
41218     {
41219       correlatedViewMaskCount = static_cast<uint32_t>( correlatedViewMasks_.size() );
41220       pCorrelatedViewMasks = correlatedViewMasks_.data();
41221       return *this;
41222     }
41223 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41224 
41225 
operator VkRenderPassCreateInfo2 const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241226     operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT
41227     {
41228       return *reinterpret_cast<const VkRenderPassCreateInfo2*>( this );
41229     }
41230 
operator VkRenderPassCreateInfo2&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241231     operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
41232     {
41233       return *reinterpret_cast<VkRenderPassCreateInfo2*>( this );
41234     }
41235 
41236 
41237 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41238     auto operator<=>( RenderPassCreateInfo2 const& ) const = default;
41239 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241240     bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41241     {
41242       return ( sType == rhs.sType )
41243           && ( pNext == rhs.pNext )
41244           && ( flags == rhs.flags )
41245           && ( attachmentCount == rhs.attachmentCount )
41246           && ( pAttachments == rhs.pAttachments )
41247           && ( subpassCount == rhs.subpassCount )
41248           && ( pSubpasses == rhs.pSubpasses )
41249           && ( dependencyCount == rhs.dependencyCount )
41250           && ( pDependencies == rhs.pDependencies )
41251           && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
41252           && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
41253     }
41254 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241255     bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41256     {
41257       return !operator==( rhs );
41258     }
41259 #endif
41260 
41261 
41262 
41263   public:
41264     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
41265     const void* pNext = {};
41266     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
41267     uint32_t attachmentCount = {};
41268     const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {};
41269     uint32_t subpassCount = {};
41270     const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {};
41271     uint32_t dependencyCount = {};
41272     const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {};
41273     uint32_t correlatedViewMaskCount = {};
41274     const uint32_t* pCorrelatedViewMasks = {};
41275 
41276   };
41277   static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" );
41278   static_assert( std::is_standard_layout<RenderPassCreateInfo2>::value, "struct wrapper is not a standard layout!" );
41279 
41280   template <>
41281   struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
41282   {
41283     using Type = RenderPassCreateInfo2;
41284   };
41285   using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
41286 
41287   struct SamplerCreateInfo
41288   {
41289     static const bool allowDuplicate = false;
41290     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
41291 
41292 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo41293     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
41294     : 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_ )
41295     {}
41296 
41297     VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41298 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo41299     SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41300     {
41301       *this = rhs;
41302     }
41303 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41304 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo41305     SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41306     {
41307       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>( &rhs );
41308       return *this;
41309     }
41310 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo41311     SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41312     {
41313       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerCreateInfo ) );
41314       return *this;
41315     }
41316 
setPNextVULKAN_HPP_NAMESPACE::SamplerCreateInfo41317     SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41318     {
41319       pNext = pNext_;
41320       return *this;
41321     }
41322 
setFlagsVULKAN_HPP_NAMESPACE::SamplerCreateInfo41323     SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41324     {
41325       flags = flags_;
41326       return *this;
41327     }
41328 
setMagFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo41329     SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
41330     {
41331       magFilter = magFilter_;
41332       return *this;
41333     }
41334 
setMinFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo41335     SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
41336     {
41337       minFilter = minFilter_;
41338       return *this;
41339     }
41340 
setMipmapModeVULKAN_HPP_NAMESPACE::SamplerCreateInfo41341     SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
41342     {
41343       mipmapMode = mipmapMode_;
41344       return *this;
41345     }
41346 
setAddressModeUVULKAN_HPP_NAMESPACE::SamplerCreateInfo41347     SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
41348     {
41349       addressModeU = addressModeU_;
41350       return *this;
41351     }
41352 
setAddressModeVVULKAN_HPP_NAMESPACE::SamplerCreateInfo41353     SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
41354     {
41355       addressModeV = addressModeV_;
41356       return *this;
41357     }
41358 
setAddressModeWVULKAN_HPP_NAMESPACE::SamplerCreateInfo41359     SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
41360     {
41361       addressModeW = addressModeW_;
41362       return *this;
41363     }
41364 
setMipLodBiasVULKAN_HPP_NAMESPACE::SamplerCreateInfo41365     SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
41366     {
41367       mipLodBias = mipLodBias_;
41368       return *this;
41369     }
41370 
setAnisotropyEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo41371     SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
41372     {
41373       anisotropyEnable = anisotropyEnable_;
41374       return *this;
41375     }
41376 
setMaxAnisotropyVULKAN_HPP_NAMESPACE::SamplerCreateInfo41377     SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
41378     {
41379       maxAnisotropy = maxAnisotropy_;
41380       return *this;
41381     }
41382 
setCompareEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo41383     SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
41384     {
41385       compareEnable = compareEnable_;
41386       return *this;
41387     }
41388 
setCompareOpVULKAN_HPP_NAMESPACE::SamplerCreateInfo41389     SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
41390     {
41391       compareOp = compareOp_;
41392       return *this;
41393     }
41394 
setMinLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo41395     SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
41396     {
41397       minLod = minLod_;
41398       return *this;
41399     }
41400 
setMaxLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo41401     SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
41402     {
41403       maxLod = maxLod_;
41404       return *this;
41405     }
41406 
setBorderColorVULKAN_HPP_NAMESPACE::SamplerCreateInfo41407     SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
41408     {
41409       borderColor = borderColor_;
41410       return *this;
41411     }
41412 
setUnnormalizedCoordinatesVULKAN_HPP_NAMESPACE::SamplerCreateInfo41413     SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
41414     {
41415       unnormalizedCoordinates = unnormalizedCoordinates_;
41416       return *this;
41417     }
41418 
41419 
operator VkSamplerCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerCreateInfo41420     operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41421     {
41422       return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
41423     }
41424 
operator VkSamplerCreateInfo&VULKAN_HPP_NAMESPACE::SamplerCreateInfo41425     operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
41426     {
41427       return *reinterpret_cast<VkSamplerCreateInfo*>( this );
41428     }
41429 
41430 
41431 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41432     auto operator<=>( SamplerCreateInfo const& ) const = default;
41433 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCreateInfo41434     bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41435     {
41436       return ( sType == rhs.sType )
41437           && ( pNext == rhs.pNext )
41438           && ( flags == rhs.flags )
41439           && ( magFilter == rhs.magFilter )
41440           && ( minFilter == rhs.minFilter )
41441           && ( mipmapMode == rhs.mipmapMode )
41442           && ( addressModeU == rhs.addressModeU )
41443           && ( addressModeV == rhs.addressModeV )
41444           && ( addressModeW == rhs.addressModeW )
41445           && ( mipLodBias == rhs.mipLodBias )
41446           && ( anisotropyEnable == rhs.anisotropyEnable )
41447           && ( maxAnisotropy == rhs.maxAnisotropy )
41448           && ( compareEnable == rhs.compareEnable )
41449           && ( compareOp == rhs.compareOp )
41450           && ( minLod == rhs.minLod )
41451           && ( maxLod == rhs.maxLod )
41452           && ( borderColor == rhs.borderColor )
41453           && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
41454     }
41455 
operator !=VULKAN_HPP_NAMESPACE::SamplerCreateInfo41456     bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41457     {
41458       return !operator==( rhs );
41459     }
41460 #endif
41461 
41462 
41463 
41464   public:
41465     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
41466     const void* pNext = {};
41467     VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
41468     VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41469     VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41470     VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
41471     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41472     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41473     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41474     float mipLodBias = {};
41475     VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
41476     float maxAnisotropy = {};
41477     VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
41478     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
41479     float minLod = {};
41480     float maxLod = {};
41481     VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
41482     VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
41483 
41484   };
41485   static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
41486   static_assert( std::is_standard_layout<SamplerCreateInfo>::value, "struct wrapper is not a standard layout!" );
41487 
41488   template <>
41489   struct CppType<StructureType, StructureType::eSamplerCreateInfo>
41490   {
41491     using Type = SamplerCreateInfo;
41492   };
41493 
41494   struct SamplerYcbcrConversionCreateInfo
41495   {
41496     static const bool allowDuplicate = false;
41497     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
41498 
41499 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41500     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
41501     : format( format_ ), ycbcrModel( ycbcrModel_ ), ycbcrRange( ycbcrRange_ ), components( components_ ), xChromaOffset( xChromaOffset_ ), yChromaOffset( yChromaOffset_ ), chromaFilter( chromaFilter_ ), forceExplicitReconstruction( forceExplicitReconstruction_ )
41502     {}
41503 
41504     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41505 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41506     SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41507     {
41508       *this = rhs;
41509     }
41510 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41511 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41512     SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41513     {
41514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>( &rhs );
41515       return *this;
41516     }
41517 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41518     SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41519     {
41520       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionCreateInfo ) );
41521       return *this;
41522     }
41523 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41524     SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41525     {
41526       pNext = pNext_;
41527       return *this;
41528     }
41529 
setFormatVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41530     SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
41531     {
41532       format = format_;
41533       return *this;
41534     }
41535 
setYcbcrModelVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41536     SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
41537     {
41538       ycbcrModel = ycbcrModel_;
41539       return *this;
41540     }
41541 
setYcbcrRangeVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41542     SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
41543     {
41544       ycbcrRange = ycbcrRange_;
41545       return *this;
41546     }
41547 
setComponentsVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41548     SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
41549     {
41550       components = components_;
41551       return *this;
41552     }
41553 
setXChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41554     SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
41555     {
41556       xChromaOffset = xChromaOffset_;
41557       return *this;
41558     }
41559 
setYChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41560     SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
41561     {
41562       yChromaOffset = yChromaOffset_;
41563       return *this;
41564     }
41565 
setChromaFilterVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41566     SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
41567     {
41568       chromaFilter = chromaFilter_;
41569       return *this;
41570     }
41571 
setForceExplicitReconstructionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41572     SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
41573     {
41574       forceExplicitReconstruction = forceExplicitReconstruction_;
41575       return *this;
41576     }
41577 
41578 
operator VkSamplerYcbcrConversionCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41579     operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41580     {
41581       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
41582     }
41583 
operator VkSamplerYcbcrConversionCreateInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41584     operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
41585     {
41586       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
41587     }
41588 
41589 
41590 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41591     auto operator<=>( SamplerYcbcrConversionCreateInfo const& ) const = default;
41592 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41593     bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41594     {
41595       return ( sType == rhs.sType )
41596           && ( pNext == rhs.pNext )
41597           && ( format == rhs.format )
41598           && ( ycbcrModel == rhs.ycbcrModel )
41599           && ( ycbcrRange == rhs.ycbcrRange )
41600           && ( components == rhs.components )
41601           && ( xChromaOffset == rhs.xChromaOffset )
41602           && ( yChromaOffset == rhs.yChromaOffset )
41603           && ( chromaFilter == rhs.chromaFilter )
41604           && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
41605     }
41606 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41607     bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41608     {
41609       return !operator==( rhs );
41610     }
41611 #endif
41612 
41613 
41614 
41615   public:
41616     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
41617     const void* pNext = {};
41618     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
41619     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
41620     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
41621     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
41622     VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
41623     VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
41624     VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41625     VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
41626 
41627   };
41628   static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" );
41629   static_assert( std::is_standard_layout<SamplerYcbcrConversionCreateInfo>::value, "struct wrapper is not a standard layout!" );
41630 
41631   template <>
41632   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
41633   {
41634     using Type = SamplerYcbcrConversionCreateInfo;
41635   };
41636   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
41637 
41638   class SamplerYcbcrConversion
41639   {
41640   public:
41641     using CType = VkSamplerYcbcrConversion;
41642 
41643     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion;
41644     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
41645 
41646   public:
SamplerYcbcrConversion()41647     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT
41648       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
41649     {}
41650 
SamplerYcbcrConversion(std::nullptr_t)41651     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41652       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
41653     {}
41654 
SamplerYcbcrConversion(VkSamplerYcbcrConversion samplerYcbcrConversion)41655     VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT
41656       : m_samplerYcbcrConversion( samplerYcbcrConversion )
41657     {}
41658 
41659 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSamplerYcbcrConversion samplerYcbcrConversion)41660     SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT
41661     {
41662       m_samplerYcbcrConversion = samplerYcbcrConversion;
41663       return *this;
41664     }
41665 #endif
41666 
operator =(std::nullptr_t)41667     SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41668     {
41669       m_samplerYcbcrConversion = VK_NULL_HANDLE;
41670       return *this;
41671     }
41672 
41673 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41674     auto operator<=>( SamplerYcbcrConversion const& ) const = default;
41675 #else
operator ==(SamplerYcbcrConversion const & rhs) const41676     bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41677     {
41678       return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion;
41679     }
41680 
operator !=(SamplerYcbcrConversion const & rhs) const41681     bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41682     {
41683       return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion;
41684     }
41685 
operator <(SamplerYcbcrConversion const & rhs) const41686     bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41687     {
41688       return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion;
41689     }
41690 #endif
41691 
operator VkSamplerYcbcrConversion() const41692     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT
41693     {
41694       return m_samplerYcbcrConversion;
41695     }
41696 
operator bool() const41697     explicit operator bool() const VULKAN_HPP_NOEXCEPT
41698     {
41699       return m_samplerYcbcrConversion != VK_NULL_HANDLE;
41700     }
41701 
operator !() const41702     bool operator!() const VULKAN_HPP_NOEXCEPT
41703     {
41704       return m_samplerYcbcrConversion == VK_NULL_HANDLE;
41705     }
41706 
41707   private:
41708     VkSamplerYcbcrConversion m_samplerYcbcrConversion;
41709   };
41710   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" );
41711 
41712   template <>
41713   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSamplerYcbcrConversion>
41714   {
41715     using type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41716   };
41717 
41718   template <>
41719   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion>
41720   {
41721     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41722   };
41723 
41724 
41725   template <>
41726   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion>
41727   {
41728     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41729   };
41730 
41731 
41732   template <>
41733   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
41734   {
41735     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
41736   };
41737   using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
41738 
41739   struct SemaphoreCreateInfo
41740   {
41741     static const bool allowDuplicate = false;
41742     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
41743 
41744 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41745     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
41746     : flags( flags_ )
41747     {}
41748 
41749     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41750 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41751     SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41752     {
41753       *this = rhs;
41754     }
41755 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41756 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41757     SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41758     {
41759       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>( &rhs );
41760       return *this;
41761     }
41762 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41763     SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41764     {
41765       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreCreateInfo ) );
41766       return *this;
41767     }
41768 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41769     SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41770     {
41771       pNext = pNext_;
41772       return *this;
41773     }
41774 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41775     SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41776     {
41777       flags = flags_;
41778       return *this;
41779     }
41780 
41781 
operator VkSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41782     operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41783     {
41784       return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
41785     }
41786 
operator VkSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41787     operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
41788     {
41789       return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
41790     }
41791 
41792 
41793 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41794     auto operator<=>( SemaphoreCreateInfo const& ) const = default;
41795 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41796     bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41797     {
41798       return ( sType == rhs.sType )
41799           && ( pNext == rhs.pNext )
41800           && ( flags == rhs.flags );
41801     }
41802 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41803     bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41804     {
41805       return !operator==( rhs );
41806     }
41807 #endif
41808 
41809 
41810 
41811   public:
41812     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
41813     const void* pNext = {};
41814     VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
41815 
41816   };
41817   static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
41818   static_assert( std::is_standard_layout<SemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
41819 
41820   template <>
41821   struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
41822   {
41823     using Type = SemaphoreCreateInfo;
41824   };
41825 
41826   struct ShaderModuleCreateInfo
41827   {
41828     static const bool allowDuplicate = false;
41829     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
41830 
41831 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41832     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo(VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, size_t codeSize_ = {}, const uint32_t* pCode_ = {}) VULKAN_HPP_NOEXCEPT
41833     : flags( flags_ ), codeSize( codeSize_ ), pCode( pCode_ )
41834     {}
41835 
41836     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41837 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41838     ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41839     {
41840       *this = rhs;
41841     }
41842 
41843 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41844     ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ )
41845     : flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() )
41846     {}
41847 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41848 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41849 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41850     ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41851     {
41852       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>( &rhs );
41853       return *this;
41854     }
41855 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41856     ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41857     {
41858       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderModuleCreateInfo ) );
41859       return *this;
41860     }
41861 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41862     ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41863     {
41864       pNext = pNext_;
41865       return *this;
41866     }
41867 
setFlagsVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41868     ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41869     {
41870       flags = flags_;
41871       return *this;
41872     }
41873 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41874     ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
41875     {
41876       codeSize = codeSize_;
41877       return *this;
41878     }
41879 
setPCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41880     ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT
41881     {
41882       pCode = pCode_;
41883       return *this;
41884     }
41885 
41886 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41887     ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
41888     {
41889       codeSize = code_.size() * 4;
41890       pCode = code_.data();
41891       return *this;
41892     }
41893 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41894 
41895 
operator VkShaderModuleCreateInfo const&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41896     operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41897     {
41898       return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
41899     }
41900 
operator VkShaderModuleCreateInfo&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41901     operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
41902     {
41903       return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
41904     }
41905 
41906 
41907 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41908     auto operator<=>( ShaderModuleCreateInfo const& ) const = default;
41909 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41910     bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41911     {
41912       return ( sType == rhs.sType )
41913           && ( pNext == rhs.pNext )
41914           && ( flags == rhs.flags )
41915           && ( codeSize == rhs.codeSize )
41916           && ( pCode == rhs.pCode );
41917     }
41918 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo41919     bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41920     {
41921       return !operator==( rhs );
41922     }
41923 #endif
41924 
41925 
41926 
41927   public:
41928     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
41929     const void* pNext = {};
41930     VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
41931     size_t codeSize = {};
41932     const uint32_t* pCode = {};
41933 
41934   };
41935   static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" );
41936   static_assert( std::is_standard_layout<ShaderModuleCreateInfo>::value, "struct wrapper is not a standard layout!" );
41937 
41938   template <>
41939   struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
41940   {
41941     using Type = ShaderModuleCreateInfo;
41942   };
41943 
41944   class SurfaceKHR
41945   {
41946   public:
41947     using CType = VkSurfaceKHR;
41948 
41949     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR;
41950     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
41951 
41952   public:
SurfaceKHR()41953     VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT
41954       : m_surfaceKHR(VK_NULL_HANDLE)
41955     {}
41956 
SurfaceKHR(std::nullptr_t)41957     VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41958       : m_surfaceKHR(VK_NULL_HANDLE)
41959     {}
41960 
SurfaceKHR(VkSurfaceKHR surfaceKHR)41961     VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT
41962       : m_surfaceKHR( surfaceKHR )
41963     {}
41964 
41965 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSurfaceKHR surfaceKHR)41966     SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT
41967     {
41968       m_surfaceKHR = surfaceKHR;
41969       return *this;
41970     }
41971 #endif
41972 
operator =(std::nullptr_t)41973     SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41974     {
41975       m_surfaceKHR = VK_NULL_HANDLE;
41976       return *this;
41977     }
41978 
41979 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41980     auto operator<=>( SurfaceKHR const& ) const = default;
41981 #else
operator ==(SurfaceKHR const & rhs) const41982     bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
41983     {
41984       return m_surfaceKHR == rhs.m_surfaceKHR;
41985     }
41986 
operator !=(SurfaceKHR const & rhs) const41987     bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
41988     {
41989       return m_surfaceKHR != rhs.m_surfaceKHR;
41990     }
41991 
operator <(SurfaceKHR const & rhs) const41992     bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
41993     {
41994       return m_surfaceKHR < rhs.m_surfaceKHR;
41995     }
41996 #endif
41997 
operator VkSurfaceKHR() const41998     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT
41999     {
42000       return m_surfaceKHR;
42001     }
42002 
operator bool() const42003     explicit operator bool() const VULKAN_HPP_NOEXCEPT
42004     {
42005       return m_surfaceKHR != VK_NULL_HANDLE;
42006     }
42007 
operator !() const42008     bool operator!() const VULKAN_HPP_NOEXCEPT
42009     {
42010       return m_surfaceKHR == VK_NULL_HANDLE;
42011     }
42012 
42013   private:
42014     VkSurfaceKHR m_surfaceKHR;
42015   };
42016   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
42017 
42018   template <>
42019   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSurfaceKHR>
42020   {
42021     using type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42022   };
42023 
42024   template <>
42025   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR>
42026   {
42027     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42028   };
42029 
42030 
42031   template <>
42032   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR>
42033   {
42034     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42035   };
42036 
42037 
42038   template <>
42039   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SurfaceKHR>
42040   {
42041     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
42042   };
42043 
42044   struct SwapchainCreateInfoKHR
42045   {
42046     static const bool allowDuplicate = false;
42047     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
42048 
42049 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42050     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
42051     : 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_ )
42052     {}
42053 
42054     VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42055 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42056     SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42057     {
42058       *this = rhs;
42059     }
42060 
42061 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42062     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_ = {} )
42063     : 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_ )
42064     {}
42065 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42066 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42067 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42068     SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42069     {
42070       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>( &rhs );
42071       return *this;
42072     }
42073 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42074     SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42075     {
42076       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainCreateInfoKHR ) );
42077       return *this;
42078     }
42079 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42080     SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42081     {
42082       pNext = pNext_;
42083       return *this;
42084     }
42085 
setFlagsVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42086     SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
42087     {
42088       flags = flags_;
42089       return *this;
42090     }
42091 
setSurfaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42092     SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
42093     {
42094       surface = surface_;
42095       return *this;
42096     }
42097 
setMinImageCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42098     SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
42099     {
42100       minImageCount = minImageCount_;
42101       return *this;
42102     }
42103 
setImageFormatVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42104     SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
42105     {
42106       imageFormat = imageFormat_;
42107       return *this;
42108     }
42109 
setImageColorSpaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42110     SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
42111     {
42112       imageColorSpace = imageColorSpace_;
42113       return *this;
42114     }
42115 
setImageExtentVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42116     SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
42117     {
42118       imageExtent = imageExtent_;
42119       return *this;
42120     }
42121 
setImageArrayLayersVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42122     SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
42123     {
42124       imageArrayLayers = imageArrayLayers_;
42125       return *this;
42126     }
42127 
setImageUsageVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42128     SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
42129     {
42130       imageUsage = imageUsage_;
42131       return *this;
42132     }
42133 
setImageSharingModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42134     SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
42135     {
42136       imageSharingMode = imageSharingMode_;
42137       return *this;
42138     }
42139 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42140     SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
42141     {
42142       queueFamilyIndexCount = queueFamilyIndexCount_;
42143       return *this;
42144     }
42145 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42146     SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
42147     {
42148       pQueueFamilyIndices = pQueueFamilyIndices_;
42149       return *this;
42150     }
42151 
42152 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42153     SwapchainCreateInfoKHR & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
42154     {
42155       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
42156       pQueueFamilyIndices = queueFamilyIndices_.data();
42157       return *this;
42158     }
42159 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42160 
setPreTransformVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42161     SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
42162     {
42163       preTransform = preTransform_;
42164       return *this;
42165     }
42166 
setCompositeAlphaVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42167     SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
42168     {
42169       compositeAlpha = compositeAlpha_;
42170       return *this;
42171     }
42172 
setPresentModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42173     SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
42174     {
42175       presentMode = presentMode_;
42176       return *this;
42177     }
42178 
setClippedVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42179     SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
42180     {
42181       clipped = clipped_;
42182       return *this;
42183     }
42184 
setOldSwapchainVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42185     SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
42186     {
42187       oldSwapchain = oldSwapchain_;
42188       return *this;
42189     }
42190 
42191 
operator VkSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42192     operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
42193     {
42194       return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
42195     }
42196 
operator VkSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42197     operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
42198     {
42199       return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
42200     }
42201 
42202 
42203 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42204     auto operator<=>( SwapchainCreateInfoKHR const& ) const = default;
42205 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42206     bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42207     {
42208       return ( sType == rhs.sType )
42209           && ( pNext == rhs.pNext )
42210           && ( flags == rhs.flags )
42211           && ( surface == rhs.surface )
42212           && ( minImageCount == rhs.minImageCount )
42213           && ( imageFormat == rhs.imageFormat )
42214           && ( imageColorSpace == rhs.imageColorSpace )
42215           && ( imageExtent == rhs.imageExtent )
42216           && ( imageArrayLayers == rhs.imageArrayLayers )
42217           && ( imageUsage == rhs.imageUsage )
42218           && ( imageSharingMode == rhs.imageSharingMode )
42219           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
42220           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
42221           && ( preTransform == rhs.preTransform )
42222           && ( compositeAlpha == rhs.compositeAlpha )
42223           && ( presentMode == rhs.presentMode )
42224           && ( clipped == rhs.clipped )
42225           && ( oldSwapchain == rhs.oldSwapchain );
42226     }
42227 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42228     bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42229     {
42230       return !operator==( rhs );
42231     }
42232 #endif
42233 
42234 
42235 
42236   public:
42237     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
42238     const void* pNext = {};
42239     VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
42240     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
42241     uint32_t minImageCount = {};
42242     VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
42243     VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
42244     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
42245     uint32_t imageArrayLayers = {};
42246     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
42247     VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
42248     uint32_t queueFamilyIndexCount = {};
42249     const uint32_t* pQueueFamilyIndices = {};
42250     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
42251     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
42252     VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
42253     VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
42254     VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
42255 
42256   };
42257   static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
42258   static_assert( std::is_standard_layout<SwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
42259 
42260   template <>
42261   struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
42262   {
42263     using Type = SwapchainCreateInfoKHR;
42264   };
42265 
42266   struct ValidationCacheCreateInfoEXT
42267   {
42268     static const bool allowDuplicate = false;
42269     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
42270 
42271 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42272     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
42273     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
42274     {}
42275 
42276     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42277 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42278     ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42279     {
42280       *this = rhs;
42281     }
42282 
42283 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42284     template <typename T>
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42285     ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
42286     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
42287     {}
42288 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42289 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42290 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42291     ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42292     {
42293       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>( &rhs );
42294       return *this;
42295     }
42296 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42297     ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42298     {
42299       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationCacheCreateInfoEXT ) );
42300       return *this;
42301     }
42302 
setPNextVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42303     ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42304     {
42305       pNext = pNext_;
42306       return *this;
42307     }
42308 
setFlagsVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42309     ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
42310     {
42311       flags = flags_;
42312       return *this;
42313     }
42314 
setInitialDataSizeVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42315     ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
42316     {
42317       initialDataSize = initialDataSize_;
42318       return *this;
42319     }
42320 
setPInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42321     ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
42322     {
42323       pInitialData = pInitialData_;
42324       return *this;
42325     }
42326 
42327 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42328     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42329     ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
42330     {
42331       initialDataSize = initialData_.size() * sizeof(T);
42332       pInitialData = initialData_.data();
42333       return *this;
42334     }
42335 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42336 
42337 
operator VkValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42338     operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
42339     {
42340       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
42341     }
42342 
operator VkValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42343     operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
42344     {
42345       return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
42346     }
42347 
42348 
42349 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42350     auto operator<=>( ValidationCacheCreateInfoEXT const& ) const = default;
42351 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42352     bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42353     {
42354       return ( sType == rhs.sType )
42355           && ( pNext == rhs.pNext )
42356           && ( flags == rhs.flags )
42357           && ( initialDataSize == rhs.initialDataSize )
42358           && ( pInitialData == rhs.pInitialData );
42359     }
42360 
operator !=VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42361     bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42362     {
42363       return !operator==( rhs );
42364     }
42365 #endif
42366 
42367 
42368 
42369   public:
42370     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
42371     const void* pNext = {};
42372     VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
42373     size_t initialDataSize = {};
42374     const void* pInitialData = {};
42375 
42376   };
42377   static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
42378   static_assert( std::is_standard_layout<ValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
42379 
42380   template <>
42381   struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
42382   {
42383     using Type = ValidationCacheCreateInfoEXT;
42384   };
42385 
42386   class ValidationCacheEXT
42387   {
42388   public:
42389     using CType = VkValidationCacheEXT;
42390 
42391     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT;
42392     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
42393 
42394   public:
ValidationCacheEXT()42395     VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT
42396       : m_validationCacheEXT(VK_NULL_HANDLE)
42397     {}
42398 
ValidationCacheEXT(std::nullptr_t)42399     VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42400       : m_validationCacheEXT(VK_NULL_HANDLE)
42401     {}
42402 
ValidationCacheEXT(VkValidationCacheEXT validationCacheEXT)42403     VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT
42404       : m_validationCacheEXT( validationCacheEXT )
42405     {}
42406 
42407 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkValidationCacheEXT validationCacheEXT)42408     ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT
42409     {
42410       m_validationCacheEXT = validationCacheEXT;
42411       return *this;
42412     }
42413 #endif
42414 
operator =(std::nullptr_t)42415     ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42416     {
42417       m_validationCacheEXT = VK_NULL_HANDLE;
42418       return *this;
42419     }
42420 
42421 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42422     auto operator<=>( ValidationCacheEXT const& ) const = default;
42423 #else
operator ==(ValidationCacheEXT const & rhs) const42424     bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42425     {
42426       return m_validationCacheEXT == rhs.m_validationCacheEXT;
42427     }
42428 
operator !=(ValidationCacheEXT const & rhs) const42429     bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42430     {
42431       return m_validationCacheEXT != rhs.m_validationCacheEXT;
42432     }
42433 
operator <(ValidationCacheEXT const & rhs) const42434     bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42435     {
42436       return m_validationCacheEXT < rhs.m_validationCacheEXT;
42437     }
42438 #endif
42439 
operator VkValidationCacheEXT() const42440     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT
42441     {
42442       return m_validationCacheEXT;
42443     }
42444 
operator bool() const42445     explicit operator bool() const VULKAN_HPP_NOEXCEPT
42446     {
42447       return m_validationCacheEXT != VK_NULL_HANDLE;
42448     }
42449 
operator !() const42450     bool operator!() const VULKAN_HPP_NOEXCEPT
42451     {
42452       return m_validationCacheEXT == VK_NULL_HANDLE;
42453     }
42454 
42455   private:
42456     VkValidationCacheEXT m_validationCacheEXT;
42457   };
42458   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
42459 
42460   template <>
42461   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eValidationCacheEXT>
42462   {
42463     using type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42464   };
42465 
42466   template <>
42467   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT>
42468   {
42469     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42470   };
42471 
42472 
42473   template <>
42474   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT>
42475   {
42476     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42477   };
42478 
42479 
42480   template <>
42481   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
42482   {
42483     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
42484   };
42485 
42486   struct DisplayPowerInfoEXT
42487   {
42488     static const bool allowDuplicate = false;
42489     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
42490 
42491 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42492     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT(VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff) VULKAN_HPP_NOEXCEPT
42493     : powerState( powerState_ )
42494     {}
42495 
42496     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42497 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42498     DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42499     {
42500       *this = rhs;
42501     }
42502 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42503 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42504     DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42505     {
42506       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>( &rhs );
42507       return *this;
42508     }
42509 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42510     DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42511     {
42512       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPowerInfoEXT ) );
42513       return *this;
42514     }
42515 
setPNextVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42516     DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42517     {
42518       pNext = pNext_;
42519       return *this;
42520     }
42521 
setPowerStateVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42522     DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
42523     {
42524       powerState = powerState_;
42525       return *this;
42526     }
42527 
42528 
operator VkDisplayPowerInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42529     operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
42530     {
42531       return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
42532     }
42533 
operator VkDisplayPowerInfoEXT&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42534     operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
42535     {
42536       return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
42537     }
42538 
42539 
42540 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42541     auto operator<=>( DisplayPowerInfoEXT const& ) const = default;
42542 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42543     bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42544     {
42545       return ( sType == rhs.sType )
42546           && ( pNext == rhs.pNext )
42547           && ( powerState == rhs.powerState );
42548     }
42549 
operator !=VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42550     bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42551     {
42552       return !operator==( rhs );
42553     }
42554 #endif
42555 
42556 
42557 
42558   public:
42559     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
42560     const void* pNext = {};
42561     VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
42562 
42563   };
42564   static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" );
42565   static_assert( std::is_standard_layout<DisplayPowerInfoEXT>::value, "struct wrapper is not a standard layout!" );
42566 
42567   template <>
42568   struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
42569   {
42570     using Type = DisplayPowerInfoEXT;
42571   };
42572 
42573   struct MappedMemoryRange
42574   {
42575     static const bool allowDuplicate = false;
42576     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
42577 
42578 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange42579     VULKAN_HPP_CONSTEXPR MappedMemoryRange(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
42580     : memory( memory_ ), offset( offset_ ), size( size_ )
42581     {}
42582 
42583     VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42584 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange42585     MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42586     {
42587       *this = rhs;
42588     }
42589 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42590 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange42591     MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42592     {
42593       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>( &rhs );
42594       return *this;
42595     }
42596 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange42597     MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42598     {
42599       memcpy( static_cast<void *>( this ), &rhs, sizeof( MappedMemoryRange ) );
42600       return *this;
42601     }
42602 
setPNextVULKAN_HPP_NAMESPACE::MappedMemoryRange42603     MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42604     {
42605       pNext = pNext_;
42606       return *this;
42607     }
42608 
setMemoryVULKAN_HPP_NAMESPACE::MappedMemoryRange42609     MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
42610     {
42611       memory = memory_;
42612       return *this;
42613     }
42614 
setOffsetVULKAN_HPP_NAMESPACE::MappedMemoryRange42615     MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
42616     {
42617       offset = offset_;
42618       return *this;
42619     }
42620 
setSizeVULKAN_HPP_NAMESPACE::MappedMemoryRange42621     MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
42622     {
42623       size = size_;
42624       return *this;
42625     }
42626 
42627 
operator VkMappedMemoryRange const&VULKAN_HPP_NAMESPACE::MappedMemoryRange42628     operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT
42629     {
42630       return *reinterpret_cast<const VkMappedMemoryRange*>( this );
42631     }
42632 
operator VkMappedMemoryRange&VULKAN_HPP_NAMESPACE::MappedMemoryRange42633     operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
42634     {
42635       return *reinterpret_cast<VkMappedMemoryRange*>( this );
42636     }
42637 
42638 
42639 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42640     auto operator<=>( MappedMemoryRange const& ) const = default;
42641 #else
operator ==VULKAN_HPP_NAMESPACE::MappedMemoryRange42642     bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
42643     {
42644       return ( sType == rhs.sType )
42645           && ( pNext == rhs.pNext )
42646           && ( memory == rhs.memory )
42647           && ( offset == rhs.offset )
42648           && ( size == rhs.size );
42649     }
42650 
operator !=VULKAN_HPP_NAMESPACE::MappedMemoryRange42651     bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
42652     {
42653       return !operator==( rhs );
42654     }
42655 #endif
42656 
42657 
42658 
42659   public:
42660     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
42661     const void* pNext = {};
42662     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
42663     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
42664     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
42665 
42666   };
42667   static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" );
42668   static_assert( std::is_standard_layout<MappedMemoryRange>::value, "struct wrapper is not a standard layout!" );
42669 
42670   template <>
42671   struct CppType<StructureType, StructureType::eMappedMemoryRange>
42672   {
42673     using Type = MappedMemoryRange;
42674   };
42675 
42676   struct MemoryRequirements
42677   {
42678 
42679 
42680 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements42681     VULKAN_HPP_CONSTEXPR MemoryRequirements(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
42682     : size( size_ ), alignment( alignment_ ), memoryTypeBits( memoryTypeBits_ )
42683     {}
42684 
42685     VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42686 
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements42687     MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42688     {
42689       *this = rhs;
42690     }
42691 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42692 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements42693     MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42694     {
42695       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>( &rhs );
42696       return *this;
42697     }
42698 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements42699     MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42700     {
42701       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryRequirements ) );
42702       return *this;
42703     }
42704 
42705 
operator VkMemoryRequirements const&VULKAN_HPP_NAMESPACE::MemoryRequirements42706     operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
42707     {
42708       return *reinterpret_cast<const VkMemoryRequirements*>( this );
42709     }
42710 
operator VkMemoryRequirements&VULKAN_HPP_NAMESPACE::MemoryRequirements42711     operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
42712     {
42713       return *reinterpret_cast<VkMemoryRequirements*>( this );
42714     }
42715 
42716 
42717 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42718     auto operator<=>( MemoryRequirements const& ) const = default;
42719 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements42720     bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
42721     {
42722       return ( size == rhs.size )
42723           && ( alignment == rhs.alignment )
42724           && ( memoryTypeBits == rhs.memoryTypeBits );
42725     }
42726 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements42727     bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
42728     {
42729       return !operator==( rhs );
42730     }
42731 #endif
42732 
42733 
42734 
42735   public:
42736     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
42737     VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
42738     uint32_t memoryTypeBits = {};
42739 
42740   };
42741   static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
42742   static_assert( std::is_standard_layout<MemoryRequirements>::value, "struct wrapper is not a standard layout!" );
42743 
42744   struct MemoryRequirements2
42745   {
42746     static const bool allowDuplicate = false;
42747     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
42748 
42749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements242750     VULKAN_HPP_CONSTEXPR MemoryRequirements2(VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
42751     : memoryRequirements( memoryRequirements_ )
42752     {}
42753 
42754     VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42755 
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements242756     MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
42757     {
42758       *this = rhs;
42759     }
42760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42761 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements242762     MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
42763     {
42764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>( &rhs );
42765       return *this;
42766     }
42767 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements242768     MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
42769     {
42770       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryRequirements2 ) );
42771       return *this;
42772     }
42773 
42774 
operator VkMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::MemoryRequirements242775     operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
42776     {
42777       return *reinterpret_cast<const VkMemoryRequirements2*>( this );
42778     }
42779 
operator VkMemoryRequirements2&VULKAN_HPP_NAMESPACE::MemoryRequirements242780     operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
42781     {
42782       return *reinterpret_cast<VkMemoryRequirements2*>( this );
42783     }
42784 
42785 
42786 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42787     auto operator<=>( MemoryRequirements2 const& ) const = default;
42788 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements242789     bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42790     {
42791       return ( sType == rhs.sType )
42792           && ( pNext == rhs.pNext )
42793           && ( memoryRequirements == rhs.memoryRequirements );
42794     }
42795 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements242796     bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
42797     {
42798       return !operator==( rhs );
42799     }
42800 #endif
42801 
42802 
42803 
42804   public:
42805     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
42806     void* pNext = {};
42807     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
42808 
42809   };
42810   static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" );
42811   static_assert( std::is_standard_layout<MemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
42812 
42813   template <>
42814   struct CppType<StructureType, StructureType::eMemoryRequirements2>
42815   {
42816     using Type = MemoryRequirements2;
42817   };
42818   using MemoryRequirements2KHR = MemoryRequirements2;
42819 
42820   struct DeviceGroupPresentCapabilitiesKHR
42821   {
42822     static const bool allowDuplicate = false;
42823     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
42824 
42825 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42826     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR(std::array<uint32_t,VK_MAX_DEVICE_GROUP_SIZE> const& presentMask_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
42827     : presentMask( presentMask_ ), modes( modes_ )
42828     {}
42829 
42830     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42831 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42832     DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42833     {
42834       *this = rhs;
42835     }
42836 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42837 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42838     DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42839     {
42840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>( &rhs );
42841       return *this;
42842     }
42843 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42844     DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42845     {
42846       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupPresentCapabilitiesKHR ) );
42847       return *this;
42848     }
42849 
42850 
operator VkDeviceGroupPresentCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42851     operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
42852     {
42853       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
42854     }
42855 
operator VkDeviceGroupPresentCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42856     operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
42857     {
42858       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
42859     }
42860 
42861 
42862 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42863     auto operator<=>( DeviceGroupPresentCapabilitiesKHR const& ) const = default;
42864 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42865     bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42866     {
42867       return ( sType == rhs.sType )
42868           && ( pNext == rhs.pNext )
42869           && ( presentMask == rhs.presentMask )
42870           && ( modes == rhs.modes );
42871     }
42872 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR42873     bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42874     {
42875       return !operator==( rhs );
42876     }
42877 #endif
42878 
42879 
42880 
42881   public:
42882     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
42883     const void* pNext = {};
42884     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
42885     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
42886 
42887   };
42888   static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" );
42889   static_assert( std::is_standard_layout<DeviceGroupPresentCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
42890 
42891   template <>
42892   struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
42893   {
42894     using Type = DeviceGroupPresentCapabilitiesKHR;
42895   };
42896 
42897   struct PhysicalDeviceSurfaceInfo2KHR
42898   {
42899     static const bool allowDuplicate = false;
42900     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
42901 
42902 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42903     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}) VULKAN_HPP_NOEXCEPT
42904     : surface( surface_ )
42905     {}
42906 
42907     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42908 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42909     PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
42910     {
42911       *this = rhs;
42912     }
42913 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42914 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42915     PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
42916     {
42917       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>( &rhs );
42918       return *this;
42919     }
42920 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42921     PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
42922     {
42923       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSurfaceInfo2KHR ) );
42924       return *this;
42925     }
42926 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42927     PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42928     {
42929       pNext = pNext_;
42930       return *this;
42931     }
42932 
setSurfaceVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42933     PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
42934     {
42935       surface = surface_;
42936       return *this;
42937     }
42938 
42939 
operator VkPhysicalDeviceSurfaceInfo2KHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42940     operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
42941     {
42942       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
42943     }
42944 
operator VkPhysicalDeviceSurfaceInfo2KHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42945     operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
42946     {
42947       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
42948     }
42949 
42950 
42951 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42952     auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const& ) const = default;
42953 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42954     bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42955     {
42956       return ( sType == rhs.sType )
42957           && ( pNext == rhs.pNext )
42958           && ( surface == rhs.surface );
42959     }
42960 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR42961     bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42962     {
42963       return !operator==( rhs );
42964     }
42965 #endif
42966 
42967 
42968 
42969   public:
42970     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
42971     const void* pNext = {};
42972     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
42973 
42974   };
42975   static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" );
42976   static_assert( std::is_standard_layout<PhysicalDeviceSurfaceInfo2KHR>::value, "struct wrapper is not a standard layout!" );
42977 
42978   template <>
42979   struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
42980   {
42981     using Type = PhysicalDeviceSurfaceInfo2KHR;
42982   };
42983 
42984   struct DeviceMemoryOpaqueCaptureAddressInfo
42985   {
42986     static const bool allowDuplicate = false;
42987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
42988 
42989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo42990     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
42991     : memory( memory_ )
42992     {}
42993 
42994     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42995 
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo42996     DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42997     {
42998       *this = rhs;
42999     }
43000 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43001 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43002     DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43003     {
43004       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs );
43005       return *this;
43006     }
43007 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43008     DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43009     {
43010       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) );
43011       return *this;
43012     }
43013 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43014     DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43015     {
43016       pNext = pNext_;
43017       return *this;
43018     }
43019 
setMemoryVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43020     DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
43021     {
43022       memory = memory_;
43023       return *this;
43024     }
43025 
43026 
operator VkDeviceMemoryOpaqueCaptureAddressInfo const&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43027     operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT
43028     {
43029       return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
43030     }
43031 
operator VkDeviceMemoryOpaqueCaptureAddressInfo&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43032     operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
43033     {
43034       return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
43035     }
43036 
43037 
43038 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43039     auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const& ) const = default;
43040 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43041     bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43042     {
43043       return ( sType == rhs.sType )
43044           && ( pNext == rhs.pNext )
43045           && ( memory == rhs.memory );
43046     }
43047 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43048     bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43049     {
43050       return !operator==( rhs );
43051     }
43052 #endif
43053 
43054 
43055 
43056   public:
43057     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
43058     const void* pNext = {};
43059     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
43060 
43061   };
43062   static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" );
43063   static_assert( std::is_standard_layout<DeviceMemoryOpaqueCaptureAddressInfo>::value, "struct wrapper is not a standard layout!" );
43064 
43065   template <>
43066   struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
43067   {
43068     using Type = DeviceMemoryOpaqueCaptureAddressInfo;
43069   };
43070   using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
43071 
43072   struct PresentInfoKHR
43073   {
43074     static const bool allowDuplicate = false;
43075     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
43076 
43077 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43078     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
43079     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), swapchainCount( swapchainCount_ ), pSwapchains( pSwapchains_ ), pImageIndices( pImageIndices_ ), pResults( pResults_ )
43080     {}
43081 
43082     VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43083 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43084     PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43085     {
43086       *this = rhs;
43087     }
43088 
43089 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43090     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_ = {} )
43091     : 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() )
43092     {
43093 #ifdef VULKAN_HPP_NO_EXCEPTIONS
43094       VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() );
43095       VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) );
43096       VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) );
43097 #else
43098       if ( swapchains_.size() != imageIndices_.size() )
43099       {
43100         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" );
43101       }
43102       if ( !results_.empty() && ( swapchains_.size() != results_.size() ) )
43103       {
43104         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" );
43105       }
43106       if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) )
43107       {
43108         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" );
43109       }
43110 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
43111     }
43112 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43113 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43114 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR43115     PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43116     {
43117       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>( &rhs );
43118       return *this;
43119     }
43120 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR43121     PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43122     {
43123       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentInfoKHR ) );
43124       return *this;
43125     }
43126 
setPNextVULKAN_HPP_NAMESPACE::PresentInfoKHR43127     PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43128     {
43129       pNext = pNext_;
43130       return *this;
43131     }
43132 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::PresentInfoKHR43133     PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43134     {
43135       waitSemaphoreCount = waitSemaphoreCount_;
43136       return *this;
43137     }
43138 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR43139     PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43140     {
43141       pWaitSemaphores = pWaitSemaphores_;
43142       return *this;
43143     }
43144 
43145 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR43146     PresentInfoKHR & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43147     {
43148       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
43149       pWaitSemaphores = waitSemaphores_.data();
43150       return *this;
43151     }
43152 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43153 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentInfoKHR43154     PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
43155     {
43156       swapchainCount = swapchainCount_;
43157       return *this;
43158     }
43159 
setPSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR43160     PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT
43161     {
43162       pSwapchains = pSwapchains_;
43163       return *this;
43164     }
43165 
43166 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR43167     PresentInfoKHR & setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ ) VULKAN_HPP_NOEXCEPT
43168     {
43169       swapchainCount = static_cast<uint32_t>( swapchains_.size() );
43170       pSwapchains = swapchains_.data();
43171       return *this;
43172     }
43173 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43174 
setPImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR43175     PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT
43176     {
43177       pImageIndices = pImageIndices_;
43178       return *this;
43179     }
43180 
43181 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR43182     PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
43183     {
43184       swapchainCount = static_cast<uint32_t>( imageIndices_.size() );
43185       pImageIndices = imageIndices_.data();
43186       return *this;
43187     }
43188 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43189 
setPResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR43190     PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT
43191     {
43192       pResults = pResults_;
43193       return *this;
43194     }
43195 
43196 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR43197     PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
43198     {
43199       swapchainCount = static_cast<uint32_t>( results_.size() );
43200       pResults = results_.data();
43201       return *this;
43202     }
43203 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43204 
43205 
operator VkPresentInfoKHR const&VULKAN_HPP_NAMESPACE::PresentInfoKHR43206     operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43207     {
43208       return *reinterpret_cast<const VkPresentInfoKHR*>( this );
43209     }
43210 
operator VkPresentInfoKHR&VULKAN_HPP_NAMESPACE::PresentInfoKHR43211     operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
43212     {
43213       return *reinterpret_cast<VkPresentInfoKHR*>( this );
43214     }
43215 
43216 
43217 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43218     auto operator<=>( PresentInfoKHR const& ) const = default;
43219 #else
operator ==VULKAN_HPP_NAMESPACE::PresentInfoKHR43220     bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43221     {
43222       return ( sType == rhs.sType )
43223           && ( pNext == rhs.pNext )
43224           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
43225           && ( pWaitSemaphores == rhs.pWaitSemaphores )
43226           && ( swapchainCount == rhs.swapchainCount )
43227           && ( pSwapchains == rhs.pSwapchains )
43228           && ( pImageIndices == rhs.pImageIndices )
43229           && ( pResults == rhs.pResults );
43230     }
43231 
operator !=VULKAN_HPP_NAMESPACE::PresentInfoKHR43232     bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43233     {
43234       return !operator==( rhs );
43235     }
43236 #endif
43237 
43238 
43239 
43240   public:
43241     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
43242     const void* pNext = {};
43243     uint32_t waitSemaphoreCount = {};
43244     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
43245     uint32_t swapchainCount = {};
43246     const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {};
43247     const uint32_t* pImageIndices = {};
43248     VULKAN_HPP_NAMESPACE::Result* pResults = {};
43249 
43250   };
43251   static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
43252   static_assert( std::is_standard_layout<PresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
43253 
43254   template <>
43255   struct CppType<StructureType, StructureType::ePresentInfoKHR>
43256   {
43257     using Type = PresentInfoKHR;
43258   };
43259 
43260   struct SubmitInfo
43261   {
43262     static const bool allowDuplicate = false;
43263     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
43264 
43265 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43266     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
43267     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), pWaitDstStageMask( pWaitDstStageMask_ ), commandBufferCount( commandBufferCount_ ), pCommandBuffers( pCommandBuffers_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
43268     {}
43269 
43270     VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43271 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43272     SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43273     {
43274       *this = rhs;
43275     }
43276 
43277 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43278     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_ = {} )
43279     : 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() )
43280     {
43281 #ifdef VULKAN_HPP_NO_EXCEPTIONS
43282       VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() );
43283 #else
43284       if ( waitSemaphores_.size() != waitDstStageMask_.size() )
43285       {
43286         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" );
43287       }
43288 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
43289     }
43290 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43291 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43292 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo43293     SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43294     {
43295       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>( &rhs );
43296       return *this;
43297     }
43298 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo43299     SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43300     {
43301       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubmitInfo ) );
43302       return *this;
43303     }
43304 
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo43305     SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43306     {
43307       pNext = pNext_;
43308       return *this;
43309     }
43310 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo43311     SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43312     {
43313       waitSemaphoreCount = waitSemaphoreCount_;
43314       return *this;
43315     }
43316 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43317     SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43318     {
43319       pWaitSemaphores = pWaitSemaphores_;
43320       return *this;
43321     }
43322 
43323 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43324     SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43325     {
43326       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
43327       pWaitSemaphores = waitSemaphores_.data();
43328       return *this;
43329     }
43330 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43331 
setPWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo43332     SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
43333     {
43334       pWaitDstStageMask = pWaitDstStageMask_;
43335       return *this;
43336     }
43337 
43338 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo43339     SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
43340     {
43341       waitSemaphoreCount = static_cast<uint32_t>( waitDstStageMask_.size() );
43342       pWaitDstStageMask = waitDstStageMask_.data();
43343       return *this;
43344     }
43345 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43346 
setCommandBufferCountVULKAN_HPP_NAMESPACE::SubmitInfo43347     SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
43348     {
43349       commandBufferCount = commandBufferCount_;
43350       return *this;
43351     }
43352 
setPCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo43353     SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
43354     {
43355       pCommandBuffers = pCommandBuffers_;
43356       return *this;
43357     }
43358 
43359 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo43360     SubmitInfo & setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT
43361     {
43362       commandBufferCount = static_cast<uint32_t>( commandBuffers_.size() );
43363       pCommandBuffers = commandBuffers_.data();
43364       return *this;
43365     }
43366 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43367 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo43368     SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43369     {
43370       signalSemaphoreCount = signalSemaphoreCount_;
43371       return *this;
43372     }
43373 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43374     SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
43375     {
43376       pSignalSemaphores = pSignalSemaphores_;
43377       return *this;
43378     }
43379 
43380 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43381     SubmitInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
43382     {
43383       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
43384       pSignalSemaphores = signalSemaphores_.data();
43385       return *this;
43386     }
43387 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43388 
43389 
operator VkSubmitInfo const&VULKAN_HPP_NAMESPACE::SubmitInfo43390     operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
43391     {
43392       return *reinterpret_cast<const VkSubmitInfo*>( this );
43393     }
43394 
operator VkSubmitInfo&VULKAN_HPP_NAMESPACE::SubmitInfo43395     operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
43396     {
43397       return *reinterpret_cast<VkSubmitInfo*>( this );
43398     }
43399 
43400 
43401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43402     auto operator<=>( SubmitInfo const& ) const = default;
43403 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo43404     bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43405     {
43406       return ( sType == rhs.sType )
43407           && ( pNext == rhs.pNext )
43408           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
43409           && ( pWaitSemaphores == rhs.pWaitSemaphores )
43410           && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
43411           && ( commandBufferCount == rhs.commandBufferCount )
43412           && ( pCommandBuffers == rhs.pCommandBuffers )
43413           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
43414           && ( pSignalSemaphores == rhs.pSignalSemaphores );
43415     }
43416 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo43417     bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43418     {
43419       return !operator==( rhs );
43420     }
43421 #endif
43422 
43423 
43424 
43425   public:
43426     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
43427     const void* pNext = {};
43428     uint32_t waitSemaphoreCount = {};
43429     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
43430     const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {};
43431     uint32_t commandBufferCount = {};
43432     const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {};
43433     uint32_t signalSemaphoreCount = {};
43434     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
43435 
43436   };
43437   static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
43438   static_assert( std::is_standard_layout<SubmitInfo>::value, "struct wrapper is not a standard layout!" );
43439 
43440   template <>
43441   struct CppType<StructureType, StructureType::eSubmitInfo>
43442   {
43443     using Type = SubmitInfo;
43444   };
43445 
43446   class Queue
43447   {
43448   public:
43449     using CType = VkQueue;
43450 
43451     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue;
43452     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
43453 
43454   public:
Queue()43455     VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT
43456       : m_queue(VK_NULL_HANDLE)
43457     {}
43458 
Queue(std::nullptr_t)43459     VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43460       : m_queue(VK_NULL_HANDLE)
43461     {}
43462 
Queue(VkQueue queue)43463     VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT
43464       : m_queue( queue )
43465     {}
43466 
43467 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueue queue)43468     Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT
43469     {
43470       m_queue = queue;
43471       return *this;
43472     }
43473 #endif
43474 
operator =(std::nullptr_t)43475     Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43476     {
43477       m_queue = VK_NULL_HANDLE;
43478       return *this;
43479     }
43480 
43481 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43482     auto operator<=>( Queue const& ) const = default;
43483 #else
operator ==(Queue const & rhs) const43484     bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43485     {
43486       return m_queue == rhs.m_queue;
43487     }
43488 
operator !=(Queue const & rhs) const43489     bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43490     {
43491       return m_queue != rhs.m_queue;
43492     }
43493 
operator <(Queue const & rhs) const43494     bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43495     {
43496       return m_queue < rhs.m_queue;
43497     }
43498 #endif
43499 
43500 
43501     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43502     void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43504     template <typename CheckpointDataNVAllocator = std::allocator<CheckpointDataNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43505     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43506     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>
43507     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43508 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43509 
43510 
43511     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43512     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43514     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43515     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43516 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43517 
43518 
43519     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43520     VULKAN_HPP_NODISCARD Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43522     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43523     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;
43524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43525 
43526 
43527     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43528     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43529 
43530 
43531     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43532     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43534     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43535     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43536 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43537 
43538 
43539     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43540     VULKAN_HPP_NODISCARD Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43541 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43542     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43543     VULKAN_HPP_NODISCARD Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43544 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43545 
43546 
43547 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
43548     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43549     VULKAN_HPP_NODISCARD Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43550 #else
43551     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43552     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;
43553 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43554 
43555 
43556 
43557     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43558     VULKAN_HPP_NODISCARD Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43561     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;
43562 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43563 
43564 
43565 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
43566     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43567     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43568 #else
43569     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43570     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43572 
43573 
operator VkQueue() const43574     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT
43575     {
43576       return m_queue;
43577     }
43578 
operator bool() const43579     explicit operator bool() const VULKAN_HPP_NOEXCEPT
43580     {
43581       return m_queue != VK_NULL_HANDLE;
43582     }
43583 
operator !() const43584     bool operator!() const VULKAN_HPP_NOEXCEPT
43585     {
43586       return m_queue == VK_NULL_HANDLE;
43587     }
43588 
43589   private:
43590     VkQueue m_queue;
43591   };
43592   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
43593 
43594   template <>
43595   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueue>
43596   {
43597     using type = VULKAN_HPP_NAMESPACE::Queue;
43598   };
43599 
43600   template <>
43601   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueue>
43602   {
43603     using Type = VULKAN_HPP_NAMESPACE::Queue;
43604   };
43605 
43606 
43607   template <>
43608   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue>
43609   {
43610     using Type = VULKAN_HPP_NAMESPACE::Queue;
43611   };
43612 
43613 
43614   template <>
43615   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Queue>
43616   {
43617     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
43618   };
43619 
43620   struct DeviceQueueInfo2
43621   {
43622     static const bool allowDuplicate = false;
43623     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
43624 
43625 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo243626     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueIndex_ = {}) VULKAN_HPP_NOEXCEPT
43627     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueIndex( queueIndex_ )
43628     {}
43629 
43630     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43631 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo243632     DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43633     {
43634       *this = rhs;
43635     }
43636 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43637 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo243638     DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43639     {
43640       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>( &rhs );
43641       return *this;
43642     }
43643 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo243644     DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43645     {
43646       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueInfo2 ) );
43647       return *this;
43648     }
43649 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueInfo243650     DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43651     {
43652       pNext = pNext_;
43653       return *this;
43654     }
43655 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueInfo243656     DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
43657     {
43658       flags = flags_;
43659       return *this;
43660     }
43661 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo243662     DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
43663     {
43664       queueFamilyIndex = queueFamilyIndex_;
43665       return *this;
43666     }
43667 
setQueueIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo243668     DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
43669     {
43670       queueIndex = queueIndex_;
43671       return *this;
43672     }
43673 
43674 
operator VkDeviceQueueInfo2 const&VULKAN_HPP_NAMESPACE::DeviceQueueInfo243675     operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT
43676     {
43677       return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
43678     }
43679 
operator VkDeviceQueueInfo2&VULKAN_HPP_NAMESPACE::DeviceQueueInfo243680     operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
43681     {
43682       return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
43683     }
43684 
43685 
43686 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43687     auto operator<=>( DeviceQueueInfo2 const& ) const = default;
43688 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueInfo243689     bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43690     {
43691       return ( sType == rhs.sType )
43692           && ( pNext == rhs.pNext )
43693           && ( flags == rhs.flags )
43694           && ( queueFamilyIndex == rhs.queueFamilyIndex )
43695           && ( queueIndex == rhs.queueIndex );
43696     }
43697 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueInfo243698     bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43699     {
43700       return !operator==( rhs );
43701     }
43702 #endif
43703 
43704 
43705 
43706   public:
43707     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
43708     const void* pNext = {};
43709     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
43710     uint32_t queueFamilyIndex = {};
43711     uint32_t queueIndex = {};
43712 
43713   };
43714   static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" );
43715   static_assert( std::is_standard_layout<DeviceQueueInfo2>::value, "struct wrapper is not a standard layout!" );
43716 
43717   template <>
43718   struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
43719   {
43720     using Type = DeviceQueueInfo2;
43721   };
43722 
43723   struct FenceGetFdInfoKHR
43724   {
43725     static const bool allowDuplicate = false;
43726     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
43727 
43728 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43729     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
43730     : fence( fence_ ), handleType( handleType_ )
43731     {}
43732 
43733     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43734 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43735     FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43736     {
43737       *this = rhs;
43738     }
43739 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43740 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43741     FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43742     {
43743       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>( &rhs );
43744       return *this;
43745     }
43746 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43747     FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43748     {
43749       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceGetFdInfoKHR ) );
43750       return *this;
43751     }
43752 
setPNextVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43753     FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43754     {
43755       pNext = pNext_;
43756       return *this;
43757     }
43758 
setFenceVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43759     FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
43760     {
43761       fence = fence_;
43762       return *this;
43763     }
43764 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43765     FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43766     {
43767       handleType = handleType_;
43768       return *this;
43769     }
43770 
43771 
operator VkFenceGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43772     operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43773     {
43774       return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
43775     }
43776 
operator VkFenceGetFdInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43777     operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
43778     {
43779       return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
43780     }
43781 
43782 
43783 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43784     auto operator<=>( FenceGetFdInfoKHR const& ) const = default;
43785 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43786     bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43787     {
43788       return ( sType == rhs.sType )
43789           && ( pNext == rhs.pNext )
43790           && ( fence == rhs.fence )
43791           && ( handleType == rhs.handleType );
43792     }
43793 
operator !=VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43794     bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43795     {
43796       return !operator==( rhs );
43797     }
43798 #endif
43799 
43800 
43801 
43802   public:
43803     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
43804     const void* pNext = {};
43805     VULKAN_HPP_NAMESPACE::Fence fence = {};
43806     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
43807 
43808   };
43809   static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" );
43810   static_assert( std::is_standard_layout<FenceGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
43811 
43812   template <>
43813   struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
43814   {
43815     using Type = FenceGetFdInfoKHR;
43816   };
43817 
43818 #ifdef VK_USE_PLATFORM_WIN32_KHR
43819   struct FenceGetWin32HandleInfoKHR
43820   {
43821     static const bool allowDuplicate = false;
43822     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
43823 
43824 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43825     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
43826     : fence( fence_ ), handleType( handleType_ )
43827     {}
43828 
43829     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43830 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43831     FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43832     {
43833       *this = rhs;
43834     }
43835 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43836 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43837     FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43838     {
43839       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>( &rhs );
43840       return *this;
43841     }
43842 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43843     FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43844     {
43845       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceGetWin32HandleInfoKHR ) );
43846       return *this;
43847     }
43848 
setPNextVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43849     FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43850     {
43851       pNext = pNext_;
43852       return *this;
43853     }
43854 
setFenceVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43855     FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
43856     {
43857       fence = fence_;
43858       return *this;
43859     }
43860 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43861     FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43862     {
43863       handleType = handleType_;
43864       return *this;
43865     }
43866 
43867 
operator VkFenceGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43868     operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43869     {
43870       return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
43871     }
43872 
operator VkFenceGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43873     operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
43874     {
43875       return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
43876     }
43877 
43878 
43879 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43880     auto operator<=>( FenceGetWin32HandleInfoKHR const& ) const = default;
43881 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43882     bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43883     {
43884       return ( sType == rhs.sType )
43885           && ( pNext == rhs.pNext )
43886           && ( fence == rhs.fence )
43887           && ( handleType == rhs.handleType );
43888     }
43889 
operator !=VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR43890     bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43891     {
43892       return !operator==( rhs );
43893     }
43894 #endif
43895 
43896 
43897 
43898   public:
43899     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
43900     const void* pNext = {};
43901     VULKAN_HPP_NAMESPACE::Fence fence = {};
43902     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
43903 
43904   };
43905   static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
43906   static_assert( std::is_standard_layout<FenceGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
43907 
43908   template <>
43909   struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
43910   {
43911     using Type = FenceGetWin32HandleInfoKHR;
43912   };
43913 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
43914 
43915   struct GeneratedCommandsMemoryRequirementsInfoNV
43916   {
43917     static const bool allowDuplicate = false;
43918     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
43919 
43920 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43921     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
43922     : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), maxSequencesCount( maxSequencesCount_ )
43923     {}
43924 
43925     VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43926 
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43927     GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
43928     {
43929       *this = rhs;
43930     }
43931 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43932 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43933     GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
43934     {
43935       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs );
43936       return *this;
43937     }
43938 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43939     GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
43940     {
43941       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) );
43942       return *this;
43943     }
43944 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43945     GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43946     {
43947       pNext = pNext_;
43948       return *this;
43949     }
43950 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43951     GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
43952     {
43953       pipelineBindPoint = pipelineBindPoint_;
43954       return *this;
43955     }
43956 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43957     GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
43958     {
43959       pipeline = pipeline_;
43960       return *this;
43961     }
43962 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43963     GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
43964     {
43965       indirectCommandsLayout = indirectCommandsLayout_;
43966       return *this;
43967     }
43968 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43969     GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
43970     {
43971       maxSequencesCount = maxSequencesCount_;
43972       return *this;
43973     }
43974 
43975 
operator VkGeneratedCommandsMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43976     operator VkGeneratedCommandsMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
43977     {
43978       return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
43979     }
43980 
operator VkGeneratedCommandsMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43981     operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
43982     {
43983       return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
43984     }
43985 
43986 
43987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43988     auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const& ) const = default;
43989 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV43990     bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
43991     {
43992       return ( sType == rhs.sType )
43993           && ( pNext == rhs.pNext )
43994           && ( pipelineBindPoint == rhs.pipelineBindPoint )
43995           && ( pipeline == rhs.pipeline )
43996           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
43997           && ( maxSequencesCount == rhs.maxSequencesCount );
43998     }
43999 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44000     bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
44001     {
44002       return !operator==( rhs );
44003     }
44004 #endif
44005 
44006 
44007 
44008   public:
44009     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
44010     const void* pNext = {};
44011     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
44012     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
44013     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
44014     uint32_t maxSequencesCount = {};
44015 
44016   };
44017   static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
44018   static_assert( std::is_standard_layout<GeneratedCommandsMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
44019 
44020   template <>
44021   struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
44022   {
44023     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
44024   };
44025 
44026   struct ImageDrmFormatModifierPropertiesEXT
44027   {
44028     static const bool allowDuplicate = false;
44029     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
44030 
44031 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44032     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}) VULKAN_HPP_NOEXCEPT
44033     : drmFormatModifier( drmFormatModifier_ )
44034     {}
44035 
44036     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44037 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44038     ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44039     {
44040       *this = rhs;
44041     }
44042 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44043 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44044     ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44045     {
44046       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>( &rhs );
44047       return *this;
44048     }
44049 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44050     ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44051     {
44052       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierPropertiesEXT ) );
44053       return *this;
44054     }
44055 
44056 
operator VkImageDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44057     operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
44058     {
44059       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
44060     }
44061 
operator VkImageDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44062     operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
44063     {
44064       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
44065     }
44066 
44067 
44068 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44069     auto operator<=>( ImageDrmFormatModifierPropertiesEXT const& ) const = default;
44070 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44071     bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
44072     {
44073       return ( sType == rhs.sType )
44074           && ( pNext == rhs.pNext )
44075           && ( drmFormatModifier == rhs.drmFormatModifier );
44076     }
44077 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44078     bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
44079     {
44080       return !operator==( rhs );
44081     }
44082 #endif
44083 
44084 
44085 
44086   public:
44087     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
44088     void* pNext = {};
44089     uint64_t drmFormatModifier = {};
44090 
44091   };
44092   static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
44093   static_assert( std::is_standard_layout<ImageDrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
44094 
44095   template <>
44096   struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
44097   {
44098     using Type = ImageDrmFormatModifierPropertiesEXT;
44099   };
44100 
44101   struct ImageMemoryRequirementsInfo2
44102   {
44103     static const bool allowDuplicate = false;
44104     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
44105 
44106 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244107     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
44108     : image( image_ )
44109     {}
44110 
44111     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44112 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244113     ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44114     {
44115       *this = rhs;
44116     }
44117 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44118 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244119     ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44120     {
44121       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>( &rhs );
44122       return *this;
44123     }
44124 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244125     ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44126     {
44127       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageMemoryRequirementsInfo2 ) );
44128       return *this;
44129     }
44130 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244131     ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44132     {
44133       pNext = pNext_;
44134       return *this;
44135     }
44136 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244137     ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44138     {
44139       image = image_;
44140       return *this;
44141     }
44142 
44143 
operator VkImageMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244144     operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44145     {
44146       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
44147     }
44148 
operator VkImageMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244149     operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44150     {
44151       return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
44152     }
44153 
44154 
44155 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44156     auto operator<=>( ImageMemoryRequirementsInfo2 const& ) const = default;
44157 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244158     bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44159     {
44160       return ( sType == rhs.sType )
44161           && ( pNext == rhs.pNext )
44162           && ( image == rhs.image );
44163     }
44164 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244165     bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44166     {
44167       return !operator==( rhs );
44168     }
44169 #endif
44170 
44171 
44172 
44173   public:
44174     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
44175     const void* pNext = {};
44176     VULKAN_HPP_NAMESPACE::Image image = {};
44177 
44178   };
44179   static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44180   static_assert( std::is_standard_layout<ImageMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44181 
44182   template <>
44183   struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
44184   {
44185     using Type = ImageMemoryRequirementsInfo2;
44186   };
44187   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
44188 
44189   struct SparseImageFormatProperties
44190   {
44191 
44192 
44193 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties44194     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
44195     : aspectMask( aspectMask_ ), imageGranularity( imageGranularity_ ), flags( flags_ )
44196     {}
44197 
44198     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44199 
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties44200     SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44201     {
44202       *this = rhs;
44203     }
44204 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44205 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44206     SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44207     {
44208       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>( &rhs );
44209       return *this;
44210     }
44211 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44212     SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44213     {
44214       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageFormatProperties ) );
44215       return *this;
44216     }
44217 
44218 
operator VkSparseImageFormatProperties const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44219     operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
44220     {
44221       return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
44222     }
44223 
operator VkSparseImageFormatProperties&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44224     operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
44225     {
44226       return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
44227     }
44228 
44229 
44230 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44231     auto operator<=>( SparseImageFormatProperties const& ) const = default;
44232 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44233     bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
44234     {
44235       return ( aspectMask == rhs.aspectMask )
44236           && ( imageGranularity == rhs.imageGranularity )
44237           && ( flags == rhs.flags );
44238     }
44239 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44240     bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
44241     {
44242       return !operator==( rhs );
44243     }
44244 #endif
44245 
44246 
44247 
44248   public:
44249     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
44250     VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
44251     VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
44252 
44253   };
44254   static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" );
44255   static_assert( std::is_standard_layout<SparseImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
44256 
44257   struct SparseImageMemoryRequirements
44258   {
44259 
44260 
44261 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44262     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
44263     : formatProperties( formatProperties_ ), imageMipTailFirstLod( imageMipTailFirstLod_ ), imageMipTailSize( imageMipTailSize_ ), imageMipTailOffset( imageMipTailOffset_ ), imageMipTailStride( imageMipTailStride_ )
44264     {}
44265 
44266     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44267 
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44268     SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44269     {
44270       *this = rhs;
44271     }
44272 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44273 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44274     SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44275     {
44276       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>( &rhs );
44277       return *this;
44278     }
44279 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44280     SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44281     {
44282       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryRequirements ) );
44283       return *this;
44284     }
44285 
44286 
operator VkSparseImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44287     operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
44288     {
44289       return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
44290     }
44291 
operator VkSparseImageMemoryRequirements&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44292     operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
44293     {
44294       return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
44295     }
44296 
44297 
44298 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44299     auto operator<=>( SparseImageMemoryRequirements const& ) const = default;
44300 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44301     bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
44302     {
44303       return ( formatProperties == rhs.formatProperties )
44304           && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
44305           && ( imageMipTailSize == rhs.imageMipTailSize )
44306           && ( imageMipTailOffset == rhs.imageMipTailOffset )
44307           && ( imageMipTailStride == rhs.imageMipTailStride );
44308     }
44309 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44310     bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
44311     {
44312       return !operator==( rhs );
44313     }
44314 #endif
44315 
44316 
44317 
44318   public:
44319     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
44320     uint32_t imageMipTailFirstLod = {};
44321     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
44322     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
44323     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
44324 
44325   };
44326   static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" );
44327   static_assert( std::is_standard_layout<SparseImageMemoryRequirements>::value, "struct wrapper is not a standard layout!" );
44328 
44329   struct ImageSparseMemoryRequirementsInfo2
44330   {
44331     static const bool allowDuplicate = false;
44332     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
44333 
44334 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244335     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
44336     : image( image_ )
44337     {}
44338 
44339     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44340 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244341     ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44342     {
44343       *this = rhs;
44344     }
44345 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44346 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244347     ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44348     {
44349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>( &rhs );
44350       return *this;
44351     }
44352 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244353     ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44354     {
44355       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSparseMemoryRequirementsInfo2 ) );
44356       return *this;
44357     }
44358 
setPNextVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244359     ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44360     {
44361       pNext = pNext_;
44362       return *this;
44363     }
44364 
setImageVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244365     ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44366     {
44367       image = image_;
44368       return *this;
44369     }
44370 
44371 
operator VkImageSparseMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244372     operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44373     {
44374       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
44375     }
44376 
operator VkImageSparseMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244377     operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44378     {
44379       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
44380     }
44381 
44382 
44383 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44384     auto operator<=>( ImageSparseMemoryRequirementsInfo2 const& ) const = default;
44385 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244386     bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44387     {
44388       return ( sType == rhs.sType )
44389           && ( pNext == rhs.pNext )
44390           && ( image == rhs.image );
44391     }
44392 
operator !=VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244393     bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44394     {
44395       return !operator==( rhs );
44396     }
44397 #endif
44398 
44399 
44400 
44401   public:
44402     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
44403     const void* pNext = {};
44404     VULKAN_HPP_NAMESPACE::Image image = {};
44405 
44406   };
44407   static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44408   static_assert( std::is_standard_layout<ImageSparseMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44409 
44410   template <>
44411   struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
44412   {
44413     using Type = ImageSparseMemoryRequirementsInfo2;
44414   };
44415   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
44416 
44417   struct SparseImageMemoryRequirements2
44418   {
44419     static const bool allowDuplicate = false;
44420     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
44421 
44422 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244423     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2(VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
44424     : memoryRequirements( memoryRequirements_ )
44425     {}
44426 
44427     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44428 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244429     SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44430     {
44431       *this = rhs;
44432     }
44433 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44434 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244435     SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44436     {
44437       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>( &rhs );
44438       return *this;
44439     }
44440 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244441     SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44442     {
44443       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryRequirements2 ) );
44444       return *this;
44445     }
44446 
44447 
operator VkSparseImageMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244448     operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
44449     {
44450       return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
44451     }
44452 
operator VkSparseImageMemoryRequirements2&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244453     operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
44454     {
44455       return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
44456     }
44457 
44458 
44459 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44460     auto operator<=>( SparseImageMemoryRequirements2 const& ) const = default;
44461 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244462     bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44463     {
44464       return ( sType == rhs.sType )
44465           && ( pNext == rhs.pNext )
44466           && ( memoryRequirements == rhs.memoryRequirements );
44467     }
44468 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244469     bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44470     {
44471       return !operator==( rhs );
44472     }
44473 #endif
44474 
44475 
44476 
44477   public:
44478     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
44479     void* pNext = {};
44480     VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
44481 
44482   };
44483   static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" );
44484   static_assert( std::is_standard_layout<SparseImageMemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
44485 
44486   template <>
44487   struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
44488   {
44489     using Type = SparseImageMemoryRequirements2;
44490   };
44491   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
44492 
44493   struct SubresourceLayout
44494   {
44495 
44496 
44497 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout44498     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
44499     : offset( offset_ ), size( size_ ), rowPitch( rowPitch_ ), arrayPitch( arrayPitch_ ), depthPitch( depthPitch_ )
44500     {}
44501 
44502     VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44503 
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout44504     SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44505     {
44506       *this = rhs;
44507     }
44508 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44509 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout44510     SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44511     {
44512       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>( &rhs );
44513       return *this;
44514     }
44515 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout44516     SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44517     {
44518       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubresourceLayout ) );
44519       return *this;
44520     }
44521 
44522 
operator VkSubresourceLayout const&VULKAN_HPP_NAMESPACE::SubresourceLayout44523     operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT
44524     {
44525       return *reinterpret_cast<const VkSubresourceLayout*>( this );
44526     }
44527 
operator VkSubresourceLayout&VULKAN_HPP_NAMESPACE::SubresourceLayout44528     operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
44529     {
44530       return *reinterpret_cast<VkSubresourceLayout*>( this );
44531     }
44532 
44533 
44534 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44535     auto operator<=>( SubresourceLayout const& ) const = default;
44536 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout44537     bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
44538     {
44539       return ( offset == rhs.offset )
44540           && ( size == rhs.size )
44541           && ( rowPitch == rhs.rowPitch )
44542           && ( arrayPitch == rhs.arrayPitch )
44543           && ( depthPitch == rhs.depthPitch );
44544     }
44545 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout44546     bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
44547     {
44548       return !operator==( rhs );
44549     }
44550 #endif
44551 
44552 
44553 
44554   public:
44555     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
44556     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
44557     VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
44558     VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
44559     VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
44560 
44561   };
44562   static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" );
44563   static_assert( std::is_standard_layout<SubresourceLayout>::value, "struct wrapper is not a standard layout!" );
44564 
44565   struct ImageViewAddressPropertiesNVX
44566   {
44567     static const bool allowDuplicate = false;
44568     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
44569 
44570 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44571     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
44572     : deviceAddress( deviceAddress_ ), size( size_ )
44573     {}
44574 
44575     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44576 
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44577     ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44578     {
44579       *this = rhs;
44580     }
44581 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44582 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44583     ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44584     {
44585       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>( &rhs );
44586       return *this;
44587     }
44588 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44589     ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44590     {
44591       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewAddressPropertiesNVX ) );
44592       return *this;
44593     }
44594 
44595 
operator VkImageViewAddressPropertiesNVX const&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44596     operator VkImageViewAddressPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
44597     {
44598       return *reinterpret_cast<const VkImageViewAddressPropertiesNVX*>( this );
44599     }
44600 
operator VkImageViewAddressPropertiesNVX&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44601     operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
44602     {
44603       return *reinterpret_cast<VkImageViewAddressPropertiesNVX*>( this );
44604     }
44605 
44606 
44607 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44608     auto operator<=>( ImageViewAddressPropertiesNVX const& ) const = default;
44609 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44610     bool operator==( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44611     {
44612       return ( sType == rhs.sType )
44613           && ( pNext == rhs.pNext )
44614           && ( deviceAddress == rhs.deviceAddress )
44615           && ( size == rhs.size );
44616     }
44617 
operator !=VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44618     bool operator!=( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44619     {
44620       return !operator==( rhs );
44621     }
44622 #endif
44623 
44624 
44625 
44626   public:
44627     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
44628     void* pNext = {};
44629     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
44630     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
44631 
44632   };
44633   static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), "struct and wrapper have different size!" );
44634   static_assert( std::is_standard_layout<ImageViewAddressPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
44635 
44636   template <>
44637   struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
44638   {
44639     using Type = ImageViewAddressPropertiesNVX;
44640   };
44641 
44642   struct ImageViewHandleInfoNVX
44643   {
44644     static const bool allowDuplicate = false;
44645     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
44646 
44647 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44648     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
44649     : imageView( imageView_ ), descriptorType( descriptorType_ ), sampler( sampler_ )
44650     {}
44651 
44652     VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44653 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44654     ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44655     {
44656       *this = rhs;
44657     }
44658 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44659 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44660     ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44661     {
44662       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>( &rhs );
44663       return *this;
44664     }
44665 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44666     ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44667     {
44668       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewHandleInfoNVX ) );
44669       return *this;
44670     }
44671 
setPNextVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44672     ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44673     {
44674       pNext = pNext_;
44675       return *this;
44676     }
44677 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44678     ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
44679     {
44680       imageView = imageView_;
44681       return *this;
44682     }
44683 
setDescriptorTypeVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44684     ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
44685     {
44686       descriptorType = descriptorType_;
44687       return *this;
44688     }
44689 
setSamplerVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44690     ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
44691     {
44692       sampler = sampler_;
44693       return *this;
44694     }
44695 
44696 
operator VkImageViewHandleInfoNVX const&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44697     operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT
44698     {
44699       return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
44700     }
44701 
operator VkImageViewHandleInfoNVX&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44702     operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
44703     {
44704       return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
44705     }
44706 
44707 
44708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44709     auto operator<=>( ImageViewHandleInfoNVX const& ) const = default;
44710 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44711     bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44712     {
44713       return ( sType == rhs.sType )
44714           && ( pNext == rhs.pNext )
44715           && ( imageView == rhs.imageView )
44716           && ( descriptorType == rhs.descriptorType )
44717           && ( sampler == rhs.sampler );
44718     }
44719 
operator !=VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44720     bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44721     {
44722       return !operator==( rhs );
44723     }
44724 #endif
44725 
44726 
44727 
44728   public:
44729     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
44730     const void* pNext = {};
44731     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
44732     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
44733     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
44734 
44735   };
44736   static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" );
44737   static_assert( std::is_standard_layout<ImageViewHandleInfoNVX>::value, "struct wrapper is not a standard layout!" );
44738 
44739   template <>
44740   struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
44741   {
44742     using Type = ImageViewHandleInfoNVX;
44743   };
44744 
44745 #ifdef VK_USE_PLATFORM_ANDROID_KHR
44746   struct MemoryGetAndroidHardwareBufferInfoANDROID
44747   {
44748     static const bool allowDuplicate = false;
44749     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
44750 
44751 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44752     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
44753     : memory( memory_ )
44754     {}
44755 
44756     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44757 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44758     MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
44759     {
44760       *this = rhs;
44761     }
44762 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44763 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44764     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
44765     {
44766       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs );
44767       return *this;
44768     }
44769 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44770     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
44771     {
44772       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) );
44773       return *this;
44774     }
44775 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44776     MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44777     {
44778       pNext = pNext_;
44779       return *this;
44780     }
44781 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44782     MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
44783     {
44784       memory = memory_;
44785       return *this;
44786     }
44787 
44788 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44789     operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
44790     {
44791       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
44792     }
44793 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44794     operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
44795     {
44796       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
44797     }
44798 
44799 
44800 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44801     auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const& ) const = default;
44802 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44803     bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
44804     {
44805       return ( sType == rhs.sType )
44806           && ( pNext == rhs.pNext )
44807           && ( memory == rhs.memory );
44808     }
44809 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID44810     bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
44811     {
44812       return !operator==( rhs );
44813     }
44814 #endif
44815 
44816 
44817 
44818   public:
44819     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
44820     const void* pNext = {};
44821     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
44822 
44823   };
44824   static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
44825   static_assert( std::is_standard_layout<MemoryGetAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
44826 
44827   template <>
44828   struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
44829   {
44830     using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
44831   };
44832 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
44833 
44834   struct MemoryGetFdInfoKHR
44835   {
44836     static const bool allowDuplicate = false;
44837     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
44838 
44839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44840     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
44841     : memory( memory_ ), handleType( handleType_ )
44842     {}
44843 
44844     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44845 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44846     MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44847     {
44848       *this = rhs;
44849     }
44850 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44851 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44852     MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44853     {
44854       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>( &rhs );
44855       return *this;
44856     }
44857 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44858     MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44859     {
44860       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetFdInfoKHR ) );
44861       return *this;
44862     }
44863 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44864     MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44865     {
44866       pNext = pNext_;
44867       return *this;
44868     }
44869 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44870     MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
44871     {
44872       memory = memory_;
44873       return *this;
44874     }
44875 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44876     MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
44877     {
44878       handleType = handleType_;
44879       return *this;
44880     }
44881 
44882 
operator VkMemoryGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44883     operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
44884     {
44885       return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
44886     }
44887 
operator VkMemoryGetFdInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44888     operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
44889     {
44890       return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
44891     }
44892 
44893 
44894 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44895     auto operator<=>( MemoryGetFdInfoKHR const& ) const = default;
44896 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44897     bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44898     {
44899       return ( sType == rhs.sType )
44900           && ( pNext == rhs.pNext )
44901           && ( memory == rhs.memory )
44902           && ( handleType == rhs.handleType );
44903     }
44904 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR44905     bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44906     {
44907       return !operator==( rhs );
44908     }
44909 #endif
44910 
44911 
44912 
44913   public:
44914     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
44915     const void* pNext = {};
44916     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
44917     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
44918 
44919   };
44920   static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" );
44921   static_assert( std::is_standard_layout<MemoryGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
44922 
44923   template <>
44924   struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
44925   {
44926     using Type = MemoryGetFdInfoKHR;
44927   };
44928 
44929   struct MemoryFdPropertiesKHR
44930   {
44931     static const bool allowDuplicate = false;
44932     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
44933 
44934 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44935     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
44936     : memoryTypeBits( memoryTypeBits_ )
44937     {}
44938 
44939     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44940 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44941     MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44942     {
44943       *this = rhs;
44944     }
44945 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44946 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44947     MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44948     {
44949       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>( &rhs );
44950       return *this;
44951     }
44952 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44953     MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44954     {
44955       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryFdPropertiesKHR ) );
44956       return *this;
44957     }
44958 
44959 
operator VkMemoryFdPropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44960     operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
44961     {
44962       return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
44963     }
44964 
operator VkMemoryFdPropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44965     operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
44966     {
44967       return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
44968     }
44969 
44970 
44971 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44972     auto operator<=>( MemoryFdPropertiesKHR const& ) const = default;
44973 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44974     bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44975     {
44976       return ( sType == rhs.sType )
44977           && ( pNext == rhs.pNext )
44978           && ( memoryTypeBits == rhs.memoryTypeBits );
44979     }
44980 
operator !=VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR44981     bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44982     {
44983       return !operator==( rhs );
44984     }
44985 #endif
44986 
44987 
44988 
44989   public:
44990     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
44991     void* pNext = {};
44992     uint32_t memoryTypeBits = {};
44993 
44994   };
44995   static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" );
44996   static_assert( std::is_standard_layout<MemoryFdPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
44997 
44998   template <>
44999   struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
45000   {
45001     using Type = MemoryFdPropertiesKHR;
45002   };
45003 
45004   struct MemoryHostPointerPropertiesEXT
45005   {
45006     static const bool allowDuplicate = false;
45007     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
45008 
45009 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45010     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45011     : memoryTypeBits( memoryTypeBits_ )
45012     {}
45013 
45014     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45015 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45016     MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45017     {
45018       *this = rhs;
45019     }
45020 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45021 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45022     MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45023     {
45024       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>( &rhs );
45025       return *this;
45026     }
45027 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45028     MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45029     {
45030       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryHostPointerPropertiesEXT ) );
45031       return *this;
45032     }
45033 
45034 
operator VkMemoryHostPointerPropertiesEXT const&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45035     operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
45036     {
45037       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
45038     }
45039 
operator VkMemoryHostPointerPropertiesEXT&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45040     operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
45041     {
45042       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
45043     }
45044 
45045 
45046 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45047     auto operator<=>( MemoryHostPointerPropertiesEXT const& ) const = default;
45048 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45049     bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45050     {
45051       return ( sType == rhs.sType )
45052           && ( pNext == rhs.pNext )
45053           && ( memoryTypeBits == rhs.memoryTypeBits );
45054     }
45055 
operator !=VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45056     bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45057     {
45058       return !operator==( rhs );
45059     }
45060 #endif
45061 
45062 
45063 
45064   public:
45065     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
45066     void* pNext = {};
45067     uint32_t memoryTypeBits = {};
45068 
45069   };
45070   static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" );
45071   static_assert( std::is_standard_layout<MemoryHostPointerPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
45072 
45073   template <>
45074   struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
45075   {
45076     using Type = MemoryHostPointerPropertiesEXT;
45077   };
45078 
45079 #ifdef VK_USE_PLATFORM_WIN32_KHR
45080   struct MemoryGetWin32HandleInfoKHR
45081   {
45082     static const bool allowDuplicate = false;
45083     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
45084 
45085 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45086     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
45087     : memory( memory_ ), handleType( handleType_ )
45088     {}
45089 
45090     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45091 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45092     MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45093     {
45094       *this = rhs;
45095     }
45096 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45097 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45098     MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45099     {
45100       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>( &rhs );
45101       return *this;
45102     }
45103 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45104     MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45105     {
45106       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetWin32HandleInfoKHR ) );
45107       return *this;
45108     }
45109 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45110     MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45111     {
45112       pNext = pNext_;
45113       return *this;
45114     }
45115 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45116     MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
45117     {
45118       memory = memory_;
45119       return *this;
45120     }
45121 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45122     MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45123     {
45124       handleType = handleType_;
45125       return *this;
45126     }
45127 
45128 
operator VkMemoryGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45129     operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45130     {
45131       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
45132     }
45133 
operator VkMemoryGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45134     operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
45135     {
45136       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
45137     }
45138 
45139 
45140 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45141     auto operator<=>( MemoryGetWin32HandleInfoKHR const& ) const = default;
45142 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45143     bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45144     {
45145       return ( sType == rhs.sType )
45146           && ( pNext == rhs.pNext )
45147           && ( memory == rhs.memory )
45148           && ( handleType == rhs.handleType );
45149     }
45150 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45151     bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45152     {
45153       return !operator==( rhs );
45154     }
45155 #endif
45156 
45157 
45158 
45159   public:
45160     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
45161     const void* pNext = {};
45162     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
45163     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
45164 
45165   };
45166   static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
45167   static_assert( std::is_standard_layout<MemoryGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
45168 
45169   template <>
45170   struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
45171   {
45172     using Type = MemoryGetWin32HandleInfoKHR;
45173   };
45174 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45175 
45176 #ifdef VK_USE_PLATFORM_WIN32_KHR
45177   struct MemoryWin32HandlePropertiesKHR
45178   {
45179     static const bool allowDuplicate = false;
45180     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
45181 
45182 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45183     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45184     : memoryTypeBits( memoryTypeBits_ )
45185     {}
45186 
45187     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45188 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45189     MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45190     {
45191       *this = rhs;
45192     }
45193 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45194 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45195     MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45196     {
45197       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>( &rhs );
45198       return *this;
45199     }
45200 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45201     MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45202     {
45203       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryWin32HandlePropertiesKHR ) );
45204       return *this;
45205     }
45206 
45207 
operator VkMemoryWin32HandlePropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45208     operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
45209     {
45210       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
45211     }
45212 
operator VkMemoryWin32HandlePropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45213     operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
45214     {
45215       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
45216     }
45217 
45218 
45219 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45220     auto operator<=>( MemoryWin32HandlePropertiesKHR const& ) const = default;
45221 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45222     bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45223     {
45224       return ( sType == rhs.sType )
45225           && ( pNext == rhs.pNext )
45226           && ( memoryTypeBits == rhs.memoryTypeBits );
45227     }
45228 
operator !=VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45229     bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45230     {
45231       return !operator==( rhs );
45232     }
45233 #endif
45234 
45235 
45236 
45237   public:
45238     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
45239     void* pNext = {};
45240     uint32_t memoryTypeBits = {};
45241 
45242   };
45243   static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" );
45244   static_assert( std::is_standard_layout<MemoryWin32HandlePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45245 
45246   template <>
45247   struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
45248   {
45249     using Type = MemoryWin32HandlePropertiesKHR;
45250   };
45251 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45252 
45253   struct PastPresentationTimingGOOGLE
45254   {
45255 
45256 
45257 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45258     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}, uint64_t actualPresentTime_ = {}, uint64_t earliestPresentTime_ = {}, uint64_t presentMargin_ = {}) VULKAN_HPP_NOEXCEPT
45259     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ), actualPresentTime( actualPresentTime_ ), earliestPresentTime( earliestPresentTime_ ), presentMargin( presentMargin_ )
45260     {}
45261 
45262     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45263 
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45264     PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45265     {
45266       *this = rhs;
45267     }
45268 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45269 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45270     PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45271     {
45272       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>( &rhs );
45273       return *this;
45274     }
45275 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45276     PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45277     {
45278       memcpy( static_cast<void *>( this ), &rhs, sizeof( PastPresentationTimingGOOGLE ) );
45279       return *this;
45280     }
45281 
45282 
operator VkPastPresentationTimingGOOGLE const&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45283     operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT
45284     {
45285       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
45286     }
45287 
operator VkPastPresentationTimingGOOGLE&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45288     operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
45289     {
45290       return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
45291     }
45292 
45293 
45294 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45295     auto operator<=>( PastPresentationTimingGOOGLE const& ) const = default;
45296 #else
operator ==VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45297     bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
45298     {
45299       return ( presentID == rhs.presentID )
45300           && ( desiredPresentTime == rhs.desiredPresentTime )
45301           && ( actualPresentTime == rhs.actualPresentTime )
45302           && ( earliestPresentTime == rhs.earliestPresentTime )
45303           && ( presentMargin == rhs.presentMargin );
45304     }
45305 
operator !=VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45306     bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
45307     {
45308       return !operator==( rhs );
45309     }
45310 #endif
45311 
45312 
45313 
45314   public:
45315     uint32_t presentID = {};
45316     uint64_t desiredPresentTime = {};
45317     uint64_t actualPresentTime = {};
45318     uint64_t earliestPresentTime = {};
45319     uint64_t presentMargin = {};
45320 
45321   };
45322   static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" );
45323   static_assert( std::is_standard_layout<PastPresentationTimingGOOGLE>::value, "struct wrapper is not a standard layout!" );
45324 
45325   union PerformanceValueDataINTEL
45326   {
PerformanceValueDataINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)45327     PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const& rhs ) VULKAN_HPP_NOEXCEPT
45328     {
45329       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
45330     }
45331 
PerformanceValueDataINTEL(uint32_t value32_={} )45332     PerformanceValueDataINTEL( uint32_t value32_ = {} )
45333       : value32( value32_ )
45334     {}
45335 
PerformanceValueDataINTEL(uint64_t value64_)45336     PerformanceValueDataINTEL( uint64_t value64_ )
45337       : value64( value64_ )
45338     {}
45339 
PerformanceValueDataINTEL(float valueFloat_)45340     PerformanceValueDataINTEL( float valueFloat_ )
45341       : valueFloat( valueFloat_ )
45342     {}
45343 
PerformanceValueDataINTEL(const char * valueString_)45344     PerformanceValueDataINTEL( const char* valueString_ )
45345       : valueString( valueString_ )
45346     {}
45347 
setValue32(uint32_t value32_)45348     PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
45349     {
45350       value32 = value32_;
45351       return *this;
45352     }
45353 
setValue64(uint64_t value64_)45354     PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
45355     {
45356       value64 = value64_;
45357       return *this;
45358     }
45359 
setValueFloat(float valueFloat_)45360     PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
45361     {
45362       valueFloat = valueFloat_;
45363       return *this;
45364     }
45365 
setValueBool(VULKAN_HPP_NAMESPACE::Bool32 valueBool_)45366     PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
45367     {
45368       valueBool = valueBool_;
45369       return *this;
45370     }
45371 
setValueString(const char * valueString_)45372     PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT
45373     {
45374       valueString = valueString_;
45375       return *this;
45376     }
45377 
operator =(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)45378     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45379     {
45380       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
45381       return *this;
45382     }
45383 
operator VkPerformanceValueDataINTEL const&() const45384     operator VkPerformanceValueDataINTEL const&() const
45385     {
45386       return *reinterpret_cast<const VkPerformanceValueDataINTEL*>(this);
45387     }
45388 
operator VkPerformanceValueDataINTEL&()45389     operator VkPerformanceValueDataINTEL &()
45390     {
45391       return *reinterpret_cast<VkPerformanceValueDataINTEL*>(this);
45392     }
45393 
45394 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
45395     uint32_t value32;
45396     uint64_t value64;
45397     float valueFloat;
45398     VULKAN_HPP_NAMESPACE::Bool32 valueBool;
45399     const char* valueString;
45400 #else
45401     uint32_t value32;
45402     uint64_t value64;
45403     float valueFloat;
45404     VkBool32 valueBool;
45405     const char* valueString;
45406 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
45407   };
45408 
45409   struct PerformanceValueINTEL
45410   {
45411 
45412 
45413 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45414     PerformanceValueINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {}) VULKAN_HPP_NOEXCEPT
45415     : type( type_ ), data( data_ )
45416     {}
45417 
45418     PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45419 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45420     PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45421     {
45422       *this = rhs;
45423     }
45424 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45425 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45426     PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45427     {
45428       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>( &rhs );
45429       return *this;
45430     }
45431 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45432     PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45433     {
45434       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceValueINTEL ) );
45435       return *this;
45436     }
45437 
setTypeVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45438     PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
45439     {
45440       type = type_;
45441       return *this;
45442     }
45443 
setDataVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45444     PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
45445     {
45446       data = data_;
45447       return *this;
45448     }
45449 
45450 
operator VkPerformanceValueINTEL const&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45451     operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT
45452     {
45453       return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
45454     }
45455 
operator VkPerformanceValueINTEL&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45456     operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
45457     {
45458       return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
45459     }
45460 
45461 
45462 
45463 
45464   public:
45465     VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
45466     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
45467 
45468   };
45469   static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" );
45470   static_assert( std::is_standard_layout<PerformanceValueINTEL>::value, "struct wrapper is not a standard layout!" );
45471 
45472   struct PipelineExecutableInfoKHR
45473   {
45474     static const bool allowDuplicate = false;
45475     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
45476 
45477 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45478     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, uint32_t executableIndex_ = {}) VULKAN_HPP_NOEXCEPT
45479     : pipeline( pipeline_ ), executableIndex( executableIndex_ )
45480     {}
45481 
45482     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45483 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45484     PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45485     {
45486       *this = rhs;
45487     }
45488 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45489 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45490     PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45491     {
45492       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>( &rhs );
45493       return *this;
45494     }
45495 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45496     PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45497     {
45498       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableInfoKHR ) );
45499       return *this;
45500     }
45501 
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45502     PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45503     {
45504       pNext = pNext_;
45505       return *this;
45506     }
45507 
setPipelineVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45508     PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
45509     {
45510       pipeline = pipeline_;
45511       return *this;
45512     }
45513 
setExecutableIndexVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45514     PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
45515     {
45516       executableIndex = executableIndex_;
45517       return *this;
45518     }
45519 
45520 
operator VkPipelineExecutableInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45521     operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45522     {
45523       return *reinterpret_cast<const VkPipelineExecutableInfoKHR*>( this );
45524     }
45525 
operator VkPipelineExecutableInfoKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45526     operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
45527     {
45528       return *reinterpret_cast<VkPipelineExecutableInfoKHR*>( this );
45529     }
45530 
45531 
45532 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45533     auto operator<=>( PipelineExecutableInfoKHR const& ) const = default;
45534 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45535     bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45536     {
45537       return ( sType == rhs.sType )
45538           && ( pNext == rhs.pNext )
45539           && ( pipeline == rhs.pipeline )
45540           && ( executableIndex == rhs.executableIndex );
45541     }
45542 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45543     bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45544     {
45545       return !operator==( rhs );
45546     }
45547 #endif
45548 
45549 
45550 
45551   public:
45552     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
45553     const void* pNext = {};
45554     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
45555     uint32_t executableIndex = {};
45556 
45557   };
45558   static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" );
45559   static_assert( std::is_standard_layout<PipelineExecutableInfoKHR>::value, "struct wrapper is not a standard layout!" );
45560 
45561   template <>
45562   struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
45563   {
45564     using Type = PipelineExecutableInfoKHR;
45565   };
45566 
45567   struct PipelineExecutableInternalRepresentationKHR
45568   {
45569     static const bool allowDuplicate = false;
45570     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
45571 
45572 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45573     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
45574     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( dataSize_ ), pData( pData_ )
45575     {}
45576 
45577     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45578 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45579     PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45580     {
45581       *this = rhs;
45582     }
45583 
45584 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
45585     template <typename T>
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45586     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_ )
45587     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
45588     {}
45589 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
45590 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45591 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45592     PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45593     {
45594       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>( &rhs );
45595       return *this;
45596     }
45597 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45598     PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45599     {
45600       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableInternalRepresentationKHR ) );
45601       return *this;
45602     }
45603 
45604 
operator VkPipelineExecutableInternalRepresentationKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45605     operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT
45606     {
45607       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR*>( this );
45608     }
45609 
operator VkPipelineExecutableInternalRepresentationKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45610     operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
45611     {
45612       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( this );
45613     }
45614 
45615 
45616 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45617     auto operator<=>( PipelineExecutableInternalRepresentationKHR const& ) const = default;
45618 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45619     bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45620     {
45621       return ( sType == rhs.sType )
45622           && ( pNext == rhs.pNext )
45623           && ( name == rhs.name )
45624           && ( description == rhs.description )
45625           && ( isText == rhs.isText )
45626           && ( dataSize == rhs.dataSize )
45627           && ( pData == rhs.pData );
45628     }
45629 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45630     bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45631     {
45632       return !operator==( rhs );
45633     }
45634 #endif
45635 
45636 
45637 
45638   public:
45639     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
45640     void* pNext = {};
45641     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
45642     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
45643     VULKAN_HPP_NAMESPACE::Bool32 isText = {};
45644     size_t dataSize = {};
45645     void* pData = {};
45646 
45647   };
45648   static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" );
45649   static_assert( std::is_standard_layout<PipelineExecutableInternalRepresentationKHR>::value, "struct wrapper is not a standard layout!" );
45650 
45651   template <>
45652   struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
45653   {
45654     using Type = PipelineExecutableInternalRepresentationKHR;
45655   };
45656 
45657   struct PipelineInfoKHR
45658   {
45659     static const bool allowDuplicate = false;
45660     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
45661 
45662 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR45663     VULKAN_HPP_CONSTEXPR PipelineInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}) VULKAN_HPP_NOEXCEPT
45664     : pipeline( pipeline_ )
45665     {}
45666 
45667     VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45668 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR45669     PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45670     {
45671       *this = rhs;
45672     }
45673 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45674 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR45675     PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45676     {
45677       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>( &rhs );
45678       return *this;
45679     }
45680 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR45681     PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45682     {
45683       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineInfoKHR ) );
45684       return *this;
45685     }
45686 
setPNextVULKAN_HPP_NAMESPACE::PipelineInfoKHR45687     PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45688     {
45689       pNext = pNext_;
45690       return *this;
45691     }
45692 
setPipelineVULKAN_HPP_NAMESPACE::PipelineInfoKHR45693     PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
45694     {
45695       pipeline = pipeline_;
45696       return *this;
45697     }
45698 
45699 
operator VkPipelineInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineInfoKHR45700     operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45701     {
45702       return *reinterpret_cast<const VkPipelineInfoKHR*>( this );
45703     }
45704 
operator VkPipelineInfoKHR&VULKAN_HPP_NAMESPACE::PipelineInfoKHR45705     operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
45706     {
45707       return *reinterpret_cast<VkPipelineInfoKHR*>( this );
45708     }
45709 
45710 
45711 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45712     auto operator<=>( PipelineInfoKHR const& ) const = default;
45713 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInfoKHR45714     bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45715     {
45716       return ( sType == rhs.sType )
45717           && ( pNext == rhs.pNext )
45718           && ( pipeline == rhs.pipeline );
45719     }
45720 
operator !=VULKAN_HPP_NAMESPACE::PipelineInfoKHR45721     bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45722     {
45723       return !operator==( rhs );
45724     }
45725 #endif
45726 
45727 
45728 
45729   public:
45730     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
45731     const void* pNext = {};
45732     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
45733 
45734   };
45735   static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" );
45736   static_assert( std::is_standard_layout<PipelineInfoKHR>::value, "struct wrapper is not a standard layout!" );
45737 
45738   template <>
45739   struct CppType<StructureType, StructureType::ePipelineInfoKHR>
45740   {
45741     using Type = PipelineInfoKHR;
45742   };
45743 
45744   struct PipelineExecutablePropertiesKHR
45745   {
45746     static const bool allowDuplicate = false;
45747     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
45748 
45749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45750     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
45751     : stages( stages_ ), name( name_ ), description( description_ ), subgroupSize( subgroupSize_ )
45752     {}
45753 
45754     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45755 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45756     PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45757     {
45758       *this = rhs;
45759     }
45760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45761 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45762     PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45763     {
45764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>( &rhs );
45765       return *this;
45766     }
45767 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45768     PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45769     {
45770       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutablePropertiesKHR ) );
45771       return *this;
45772     }
45773 
45774 
operator VkPipelineExecutablePropertiesKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45775     operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
45776     {
45777       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR*>( this );
45778     }
45779 
operator VkPipelineExecutablePropertiesKHR&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45780     operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
45781     {
45782       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( this );
45783     }
45784 
45785 
45786 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45787     auto operator<=>( PipelineExecutablePropertiesKHR const& ) const = default;
45788 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45789     bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45790     {
45791       return ( sType == rhs.sType )
45792           && ( pNext == rhs.pNext )
45793           && ( stages == rhs.stages )
45794           && ( name == rhs.name )
45795           && ( description == rhs.description )
45796           && ( subgroupSize == rhs.subgroupSize );
45797     }
45798 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR45799     bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45800     {
45801       return !operator==( rhs );
45802     }
45803 #endif
45804 
45805 
45806 
45807   public:
45808     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
45809     void* pNext = {};
45810     VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
45811     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
45812     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
45813     uint32_t subgroupSize = {};
45814 
45815   };
45816   static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" );
45817   static_assert( std::is_standard_layout<PipelineExecutablePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45818 
45819   template <>
45820   struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
45821   {
45822     using Type = PipelineExecutablePropertiesKHR;
45823   };
45824 
45825   union PipelineExecutableStatisticValueKHR
45826   {
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)45827     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const& rhs ) VULKAN_HPP_NOEXCEPT
45828     {
45829       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
45830     }
45831 
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::Bool32 b32_={} )45832     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} )
45833       : b32( b32_ )
45834     {}
45835 
PipelineExecutableStatisticValueKHR(int64_t i64_)45836     PipelineExecutableStatisticValueKHR( int64_t i64_ )
45837       : i64( i64_ )
45838     {}
45839 
PipelineExecutableStatisticValueKHR(uint64_t u64_)45840     PipelineExecutableStatisticValueKHR( uint64_t u64_ )
45841       : u64( u64_ )
45842     {}
45843 
PipelineExecutableStatisticValueKHR(double f64_)45844     PipelineExecutableStatisticValueKHR( double f64_ )
45845       : f64( f64_ )
45846     {}
45847 
setB32(VULKAN_HPP_NAMESPACE::Bool32 b32_)45848     PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
45849     {
45850       b32 = b32_;
45851       return *this;
45852     }
45853 
setI64(int64_t i64_)45854     PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
45855     {
45856       i64 = i64_;
45857       return *this;
45858     }
45859 
setU64(uint64_t u64_)45860     PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
45861     {
45862       u64 = u64_;
45863       return *this;
45864     }
45865 
setF64(double f64_)45866     PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
45867     {
45868       f64 = f64_;
45869       return *this;
45870     }
45871 
operator =(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)45872     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45873     {
45874       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
45875       return *this;
45876     }
45877 
operator VkPipelineExecutableStatisticValueKHR const&() const45878     operator VkPipelineExecutableStatisticValueKHR const&() const
45879     {
45880       return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR*>(this);
45881     }
45882 
operator VkPipelineExecutableStatisticValueKHR&()45883     operator VkPipelineExecutableStatisticValueKHR &()
45884     {
45885       return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR*>(this);
45886     }
45887 
45888 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
45889     VULKAN_HPP_NAMESPACE::Bool32 b32;
45890     int64_t i64;
45891     uint64_t u64;
45892     double f64;
45893 #else
45894     VkBool32 b32;
45895     int64_t i64;
45896     uint64_t u64;
45897     double f64;
45898 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
45899   };
45900 
45901   struct PipelineExecutableStatisticKHR
45902   {
45903     static const bool allowDuplicate = false;
45904     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
45905 
45906 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR45907     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
45908     : name( name_ ), description( description_ ), format( format_ ), value( value_ )
45909     {}
45910 
45911     PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45912 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR45913     PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45914     {
45915       *this = rhs;
45916     }
45917 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45918 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR45919     PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45920     {
45921       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>( &rhs );
45922       return *this;
45923     }
45924 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR45925     PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45926     {
45927       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableStatisticKHR ) );
45928       return *this;
45929     }
45930 
45931 
operator VkPipelineExecutableStatisticKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR45932     operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT
45933     {
45934       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR*>( this );
45935     }
45936 
operator VkPipelineExecutableStatisticKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR45937     operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
45938     {
45939       return *reinterpret_cast<VkPipelineExecutableStatisticKHR*>( this );
45940     }
45941 
45942 
45943 
45944 
45945   public:
45946     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
45947     void* pNext = {};
45948     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
45949     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
45950     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
45951     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
45952 
45953   };
45954   static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" );
45955   static_assert( std::is_standard_layout<PipelineExecutableStatisticKHR>::value, "struct wrapper is not a standard layout!" );
45956 
45957   template <>
45958   struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
45959   {
45960     using Type = PipelineExecutableStatisticKHR;
45961   };
45962 
45963   struct RefreshCycleDurationGOOGLE
45964   {
45965 
45966 
45967 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE45968     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE(uint64_t refreshDuration_ = {}) VULKAN_HPP_NOEXCEPT
45969     : refreshDuration( refreshDuration_ )
45970     {}
45971 
45972     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45973 
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE45974     RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45975     {
45976       *this = rhs;
45977     }
45978 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45979 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE45980     RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45981     {
45982       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>( &rhs );
45983       return *this;
45984     }
45985 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE45986     RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45987     {
45988       memcpy( static_cast<void *>( this ), &rhs, sizeof( RefreshCycleDurationGOOGLE ) );
45989       return *this;
45990     }
45991 
45992 
operator VkRefreshCycleDurationGOOGLE const&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE45993     operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT
45994     {
45995       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
45996     }
45997 
operator VkRefreshCycleDurationGOOGLE&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE45998     operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
45999     {
46000       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
46001     }
46002 
46003 
46004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46005     auto operator<=>( RefreshCycleDurationGOOGLE const& ) const = default;
46006 #else
operator ==VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46007     bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46008     {
46009       return ( refreshDuration == rhs.refreshDuration );
46010     }
46011 
operator !=VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46012     bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46013     {
46014       return !operator==( rhs );
46015     }
46016 #endif
46017 
46018 
46019 
46020   public:
46021     uint64_t refreshDuration = {};
46022 
46023   };
46024   static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" );
46025   static_assert( std::is_standard_layout<RefreshCycleDurationGOOGLE>::value, "struct wrapper is not a standard layout!" );
46026 
46027   struct SemaphoreGetFdInfoKHR
46028   {
46029     static const bool allowDuplicate = false;
46030     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
46031 
46032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46033     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46034     : semaphore( semaphore_ ), handleType( handleType_ )
46035     {}
46036 
46037     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46038 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46039     SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46040     {
46041       *this = rhs;
46042     }
46043 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46044 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46045     SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46046     {
46047       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>( &rhs );
46048       return *this;
46049     }
46050 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46051     SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46052     {
46053       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreGetFdInfoKHR ) );
46054       return *this;
46055     }
46056 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46057     SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46058     {
46059       pNext = pNext_;
46060       return *this;
46061     }
46062 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46063     SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46064     {
46065       semaphore = semaphore_;
46066       return *this;
46067     }
46068 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46069     SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46070     {
46071       handleType = handleType_;
46072       return *this;
46073     }
46074 
46075 
operator VkSemaphoreGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46076     operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46077     {
46078       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
46079     }
46080 
operator VkSemaphoreGetFdInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46081     operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46082     {
46083       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
46084     }
46085 
46086 
46087 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46088     auto operator<=>( SemaphoreGetFdInfoKHR const& ) const = default;
46089 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46090     bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46091     {
46092       return ( sType == rhs.sType )
46093           && ( pNext == rhs.pNext )
46094           && ( semaphore == rhs.semaphore )
46095           && ( handleType == rhs.handleType );
46096     }
46097 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46098     bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46099     {
46100       return !operator==( rhs );
46101     }
46102 #endif
46103 
46104 
46105 
46106   public:
46107     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
46108     const void* pNext = {};
46109     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46110     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46111 
46112   };
46113   static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" );
46114   static_assert( std::is_standard_layout<SemaphoreGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46115 
46116   template <>
46117   struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
46118   {
46119     using Type = SemaphoreGetFdInfoKHR;
46120   };
46121 
46122 #ifdef VK_USE_PLATFORM_WIN32_KHR
46123   struct SemaphoreGetWin32HandleInfoKHR
46124   {
46125     static const bool allowDuplicate = false;
46126     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
46127 
46128 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46129     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46130     : semaphore( semaphore_ ), handleType( handleType_ )
46131     {}
46132 
46133     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46134 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46135     SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46136     {
46137       *this = rhs;
46138     }
46139 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46140 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46141     SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46142     {
46143       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>( &rhs );
46144       return *this;
46145     }
46146 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46147     SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46148     {
46149       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreGetWin32HandleInfoKHR ) );
46150       return *this;
46151     }
46152 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46153     SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46154     {
46155       pNext = pNext_;
46156       return *this;
46157     }
46158 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46159     SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46160     {
46161       semaphore = semaphore_;
46162       return *this;
46163     }
46164 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46165     SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46166     {
46167       handleType = handleType_;
46168       return *this;
46169     }
46170 
46171 
operator VkSemaphoreGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46172     operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46173     {
46174       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
46175     }
46176 
operator VkSemaphoreGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46177     operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46178     {
46179       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
46180     }
46181 
46182 
46183 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46184     auto operator<=>( SemaphoreGetWin32HandleInfoKHR const& ) const = default;
46185 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46186     bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46187     {
46188       return ( sType == rhs.sType )
46189           && ( pNext == rhs.pNext )
46190           && ( semaphore == rhs.semaphore )
46191           && ( handleType == rhs.handleType );
46192     }
46193 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46194     bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46195     {
46196       return !operator==( rhs );
46197     }
46198 #endif
46199 
46200 
46201 
46202   public:
46203     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
46204     const void* pNext = {};
46205     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46206     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46207 
46208   };
46209   static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46210   static_assert( std::is_standard_layout<SemaphoreGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46211 
46212   template <>
46213   struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
46214   {
46215     using Type = SemaphoreGetWin32HandleInfoKHR;
46216   };
46217 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46218 
46219   struct ImportFenceFdInfoKHR
46220   {
46221     static const bool allowDuplicate = false;
46222     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
46223 
46224 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46225     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
46226     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
46227     {}
46228 
46229     VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46230 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46231     ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46232     {
46233       *this = rhs;
46234     }
46235 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46236 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46237     ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46238     {
46239       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>( &rhs );
46240       return *this;
46241     }
46242 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46243     ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46244     {
46245       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportFenceFdInfoKHR ) );
46246       return *this;
46247     }
46248 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46249     ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46250     {
46251       pNext = pNext_;
46252       return *this;
46253     }
46254 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46255     ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
46256     {
46257       fence = fence_;
46258       return *this;
46259     }
46260 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46261     ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46262     {
46263       flags = flags_;
46264       return *this;
46265     }
46266 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46267     ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46268     {
46269       handleType = handleType_;
46270       return *this;
46271     }
46272 
setFdVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46273     ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
46274     {
46275       fd = fd_;
46276       return *this;
46277     }
46278 
46279 
operator VkImportFenceFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46280     operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46281     {
46282       return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
46283     }
46284 
operator VkImportFenceFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46285     operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46286     {
46287       return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
46288     }
46289 
46290 
46291 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46292     auto operator<=>( ImportFenceFdInfoKHR const& ) const = default;
46293 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46294     bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46295     {
46296       return ( sType == rhs.sType )
46297           && ( pNext == rhs.pNext )
46298           && ( fence == rhs.fence )
46299           && ( flags == rhs.flags )
46300           && ( handleType == rhs.handleType )
46301           && ( fd == rhs.fd );
46302     }
46303 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46304     bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46305     {
46306       return !operator==( rhs );
46307     }
46308 #endif
46309 
46310 
46311 
46312   public:
46313     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
46314     const void* pNext = {};
46315     VULKAN_HPP_NAMESPACE::Fence fence = {};
46316     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
46317     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
46318     int fd = {};
46319 
46320   };
46321   static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" );
46322   static_assert( std::is_standard_layout<ImportFenceFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46323 
46324   template <>
46325   struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
46326   {
46327     using Type = ImportFenceFdInfoKHR;
46328   };
46329 
46330 #ifdef VK_USE_PLATFORM_WIN32_KHR
46331   struct ImportFenceWin32HandleInfoKHR
46332   {
46333     static const bool allowDuplicate = false;
46334     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
46335 
46336 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46337     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
46338     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
46339     {}
46340 
46341     VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46342 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46343     ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46344     {
46345       *this = rhs;
46346     }
46347 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46348 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46349     ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46350     {
46351       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>( &rhs );
46352       return *this;
46353     }
46354 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46355     ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46356     {
46357       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportFenceWin32HandleInfoKHR ) );
46358       return *this;
46359     }
46360 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46361     ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46362     {
46363       pNext = pNext_;
46364       return *this;
46365     }
46366 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46367     ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
46368     {
46369       fence = fence_;
46370       return *this;
46371     }
46372 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46373     ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46374     {
46375       flags = flags_;
46376       return *this;
46377     }
46378 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46379     ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46380     {
46381       handleType = handleType_;
46382       return *this;
46383     }
46384 
setHandleVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46385     ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46386     {
46387       handle = handle_;
46388       return *this;
46389     }
46390 
setNameVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46391     ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
46392     {
46393       name = name_;
46394       return *this;
46395     }
46396 
46397 
operator VkImportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46398     operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46399     {
46400       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
46401     }
46402 
operator VkImportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46403     operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46404     {
46405       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
46406     }
46407 
46408 
46409 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46410     auto operator<=>( ImportFenceWin32HandleInfoKHR const& ) const = default;
46411 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46412     bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46413     {
46414       return ( sType == rhs.sType )
46415           && ( pNext == rhs.pNext )
46416           && ( fence == rhs.fence )
46417           && ( flags == rhs.flags )
46418           && ( handleType == rhs.handleType )
46419           && ( handle == rhs.handle )
46420           && ( name == rhs.name );
46421     }
46422 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46423     bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46424     {
46425       return !operator==( rhs );
46426     }
46427 #endif
46428 
46429 
46430 
46431   public:
46432     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
46433     const void* pNext = {};
46434     VULKAN_HPP_NAMESPACE::Fence fence = {};
46435     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
46436     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
46437     HANDLE handle = {};
46438     LPCWSTR name = {};
46439 
46440   };
46441   static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46442   static_assert( std::is_standard_layout<ImportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46443 
46444   template <>
46445   struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
46446   {
46447     using Type = ImportFenceWin32HandleInfoKHR;
46448   };
46449 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46450 
46451   struct ImportSemaphoreFdInfoKHR
46452   {
46453     static const bool allowDuplicate = false;
46454     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
46455 
46456 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46457     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
46458     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
46459     {}
46460 
46461     VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46462 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46463     ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46464     {
46465       *this = rhs;
46466     }
46467 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46468 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46469     ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46470     {
46471       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>( &rhs );
46472       return *this;
46473     }
46474 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46475     ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46476     {
46477       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportSemaphoreFdInfoKHR ) );
46478       return *this;
46479     }
46480 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46481     ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46482     {
46483       pNext = pNext_;
46484       return *this;
46485     }
46486 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46487     ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46488     {
46489       semaphore = semaphore_;
46490       return *this;
46491     }
46492 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46493     ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46494     {
46495       flags = flags_;
46496       return *this;
46497     }
46498 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46499     ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46500     {
46501       handleType = handleType_;
46502       return *this;
46503     }
46504 
setFdVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46505     ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
46506     {
46507       fd = fd_;
46508       return *this;
46509     }
46510 
46511 
operator VkImportSemaphoreFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46512     operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46513     {
46514       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
46515     }
46516 
operator VkImportSemaphoreFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46517     operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46518     {
46519       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
46520     }
46521 
46522 
46523 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46524     auto operator<=>( ImportSemaphoreFdInfoKHR const& ) const = default;
46525 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46526     bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46527     {
46528       return ( sType == rhs.sType )
46529           && ( pNext == rhs.pNext )
46530           && ( semaphore == rhs.semaphore )
46531           && ( flags == rhs.flags )
46532           && ( handleType == rhs.handleType )
46533           && ( fd == rhs.fd );
46534     }
46535 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46536     bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46537     {
46538       return !operator==( rhs );
46539     }
46540 #endif
46541 
46542 
46543 
46544   public:
46545     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
46546     const void* pNext = {};
46547     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46548     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46549     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46550     int fd = {};
46551 
46552   };
46553   static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" );
46554   static_assert( std::is_standard_layout<ImportSemaphoreFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46555 
46556   template <>
46557   struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
46558   {
46559     using Type = ImportSemaphoreFdInfoKHR;
46560   };
46561 
46562 #ifdef VK_USE_PLATFORM_WIN32_KHR
46563   struct ImportSemaphoreWin32HandleInfoKHR
46564   {
46565     static const bool allowDuplicate = false;
46566     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46567 
46568 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46569     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
46570     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
46571     {}
46572 
46573     VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46574 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46575     ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46576     {
46577       *this = rhs;
46578     }
46579 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46580 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46581     ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46582     {
46583       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>( &rhs );
46584       return *this;
46585     }
46586 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46587     ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46588     {
46589       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportSemaphoreWin32HandleInfoKHR ) );
46590       return *this;
46591     }
46592 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46593     ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46594     {
46595       pNext = pNext_;
46596       return *this;
46597     }
46598 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46599     ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46600     {
46601       semaphore = semaphore_;
46602       return *this;
46603     }
46604 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46605     ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46606     {
46607       flags = flags_;
46608       return *this;
46609     }
46610 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46611     ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46612     {
46613       handleType = handleType_;
46614       return *this;
46615     }
46616 
setHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46617     ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46618     {
46619       handle = handle_;
46620       return *this;
46621     }
46622 
setNameVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46623     ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
46624     {
46625       name = name_;
46626       return *this;
46627     }
46628 
46629 
operator VkImportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46630     operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46631     {
46632       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
46633     }
46634 
operator VkImportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46635     operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46636     {
46637       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
46638     }
46639 
46640 
46641 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46642     auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const& ) const = default;
46643 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46644     bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46645     {
46646       return ( sType == rhs.sType )
46647           && ( pNext == rhs.pNext )
46648           && ( semaphore == rhs.semaphore )
46649           && ( flags == rhs.flags )
46650           && ( handleType == rhs.handleType )
46651           && ( handle == rhs.handle )
46652           && ( name == rhs.name );
46653     }
46654 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46655     bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46656     {
46657       return !operator==( rhs );
46658     }
46659 #endif
46660 
46661 
46662 
46663   public:
46664     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46665     const void* pNext = {};
46666     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46667     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46668     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46669     HANDLE handle = {};
46670     LPCWSTR name = {};
46671 
46672   };
46673   static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46674   static_assert( std::is_standard_layout<ImportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46675 
46676   template <>
46677   struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
46678   {
46679     using Type = ImportSemaphoreWin32HandleInfoKHR;
46680   };
46681 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46682 
46683   struct InitializePerformanceApiInfoINTEL
46684   {
46685     static const bool allowDuplicate = false;
46686     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
46687 
46688 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46689     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL(void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
46690     : pUserData( pUserData_ )
46691     {}
46692 
46693     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46694 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46695     InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46696     {
46697       *this = rhs;
46698     }
46699 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46700 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46701     InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46702     {
46703       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>( &rhs );
46704       return *this;
46705     }
46706 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46707     InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46708     {
46709       memcpy( static_cast<void *>( this ), &rhs, sizeof( InitializePerformanceApiInfoINTEL ) );
46710       return *this;
46711     }
46712 
setPNextVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46713     InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46714     {
46715       pNext = pNext_;
46716       return *this;
46717     }
46718 
setPUserDataVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46719     InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
46720     {
46721       pUserData = pUserData_;
46722       return *this;
46723     }
46724 
46725 
operator VkInitializePerformanceApiInfoINTEL const&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46726     operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
46727     {
46728       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
46729     }
46730 
operator VkInitializePerformanceApiInfoINTEL&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46731     operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
46732     {
46733       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
46734     }
46735 
46736 
46737 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46738     auto operator<=>( InitializePerformanceApiInfoINTEL const& ) const = default;
46739 #else
operator ==VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46740     bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
46741     {
46742       return ( sType == rhs.sType )
46743           && ( pNext == rhs.pNext )
46744           && ( pUserData == rhs.pUserData );
46745     }
46746 
operator !=VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46747     bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
46748     {
46749       return !operator==( rhs );
46750     }
46751 #endif
46752 
46753 
46754 
46755   public:
46756     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
46757     const void* pNext = {};
46758     void* pUserData = {};
46759 
46760   };
46761   static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" );
46762   static_assert( std::is_standard_layout<InitializePerformanceApiInfoINTEL>::value, "struct wrapper is not a standard layout!" );
46763 
46764   template <>
46765   struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
46766   {
46767     using Type = InitializePerformanceApiInfoINTEL;
46768   };
46769 
46770   struct DisplayEventInfoEXT
46771   {
46772     static const bool allowDuplicate = false;
46773     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
46774 
46775 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46776     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT(VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut) VULKAN_HPP_NOEXCEPT
46777     : displayEvent( displayEvent_ )
46778     {}
46779 
46780     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46781 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46782     DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46783     {
46784       *this = rhs;
46785     }
46786 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46787 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46788     DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46789     {
46790       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>( &rhs );
46791       return *this;
46792     }
46793 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46794     DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46795     {
46796       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayEventInfoEXT ) );
46797       return *this;
46798     }
46799 
setPNextVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46800     DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46801     {
46802       pNext = pNext_;
46803       return *this;
46804     }
46805 
setDisplayEventVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46806     DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
46807     {
46808       displayEvent = displayEvent_;
46809       return *this;
46810     }
46811 
46812 
operator VkDisplayEventInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46813     operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
46814     {
46815       return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
46816     }
46817 
operator VkDisplayEventInfoEXT&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46818     operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
46819     {
46820       return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
46821     }
46822 
46823 
46824 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46825     auto operator<=>( DisplayEventInfoEXT const& ) const = default;
46826 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46827     bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46828     {
46829       return ( sType == rhs.sType )
46830           && ( pNext == rhs.pNext )
46831           && ( displayEvent == rhs.displayEvent );
46832     }
46833 
operator !=VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT46834     bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46835     {
46836       return !operator==( rhs );
46837     }
46838 #endif
46839 
46840 
46841 
46842   public:
46843     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
46844     const void* pNext = {};
46845     VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
46846 
46847   };
46848   static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" );
46849   static_assert( std::is_standard_layout<DisplayEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
46850 
46851   template <>
46852   struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
46853   {
46854     using Type = DisplayEventInfoEXT;
46855   };
46856 
46857   struct XYColorEXT
46858   {
46859 
46860 
46861 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT46862     VULKAN_HPP_CONSTEXPR XYColorEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
46863     : x( x_ ), y( y_ )
46864     {}
46865 
46866     VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46867 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT46868     XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46869     {
46870       *this = rhs;
46871     }
46872 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46873 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT46874     XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46875     {
46876       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>( &rhs );
46877       return *this;
46878     }
46879 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT46880     XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46881     {
46882       memcpy( static_cast<void *>( this ), &rhs, sizeof( XYColorEXT ) );
46883       return *this;
46884     }
46885 
setXVULKAN_HPP_NAMESPACE::XYColorEXT46886     XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
46887     {
46888       x = x_;
46889       return *this;
46890     }
46891 
setYVULKAN_HPP_NAMESPACE::XYColorEXT46892     XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
46893     {
46894       y = y_;
46895       return *this;
46896     }
46897 
46898 
operator VkXYColorEXT const&VULKAN_HPP_NAMESPACE::XYColorEXT46899     operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT
46900     {
46901       return *reinterpret_cast<const VkXYColorEXT*>( this );
46902     }
46903 
operator VkXYColorEXT&VULKAN_HPP_NAMESPACE::XYColorEXT46904     operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
46905     {
46906       return *reinterpret_cast<VkXYColorEXT*>( this );
46907     }
46908 
46909 
46910 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46911     auto operator<=>( XYColorEXT const& ) const = default;
46912 #else
operator ==VULKAN_HPP_NAMESPACE::XYColorEXT46913     bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46914     {
46915       return ( x == rhs.x )
46916           && ( y == rhs.y );
46917     }
46918 
operator !=VULKAN_HPP_NAMESPACE::XYColorEXT46919     bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
46920     {
46921       return !operator==( rhs );
46922     }
46923 #endif
46924 
46925 
46926 
46927   public:
46928     float x = {};
46929     float y = {};
46930 
46931   };
46932   static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" );
46933   static_assert( std::is_standard_layout<XYColorEXT>::value, "struct wrapper is not a standard layout!" );
46934 
46935   struct HdrMetadataEXT
46936   {
46937     static const bool allowDuplicate = false;
46938     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
46939 
46940 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT46941     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
46942     : displayPrimaryRed( displayPrimaryRed_ ), displayPrimaryGreen( displayPrimaryGreen_ ), displayPrimaryBlue( displayPrimaryBlue_ ), whitePoint( whitePoint_ ), maxLuminance( maxLuminance_ ), minLuminance( minLuminance_ ), maxContentLightLevel( maxContentLightLevel_ ), maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
46943     {}
46944 
46945     VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46946 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT46947     HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46948     {
46949       *this = rhs;
46950     }
46951 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46952 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT46953     HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46954     {
46955       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>( &rhs );
46956       return *this;
46957     }
46958 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT46959     HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
46960     {
46961       memcpy( static_cast<void *>( this ), &rhs, sizeof( HdrMetadataEXT ) );
46962       return *this;
46963     }
46964 
setPNextVULKAN_HPP_NAMESPACE::HdrMetadataEXT46965     HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46966     {
46967       pNext = pNext_;
46968       return *this;
46969     }
46970 
setDisplayPrimaryRedVULKAN_HPP_NAMESPACE::HdrMetadataEXT46971     HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
46972     {
46973       displayPrimaryRed = displayPrimaryRed_;
46974       return *this;
46975     }
46976 
setDisplayPrimaryGreenVULKAN_HPP_NAMESPACE::HdrMetadataEXT46977     HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
46978     {
46979       displayPrimaryGreen = displayPrimaryGreen_;
46980       return *this;
46981     }
46982 
setDisplayPrimaryBlueVULKAN_HPP_NAMESPACE::HdrMetadataEXT46983     HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
46984     {
46985       displayPrimaryBlue = displayPrimaryBlue_;
46986       return *this;
46987     }
46988 
setWhitePointVULKAN_HPP_NAMESPACE::HdrMetadataEXT46989     HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
46990     {
46991       whitePoint = whitePoint_;
46992       return *this;
46993     }
46994 
setMaxLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT46995     HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
46996     {
46997       maxLuminance = maxLuminance_;
46998       return *this;
46999     }
47000 
setMinLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT47001     HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
47002     {
47003       minLuminance = minLuminance_;
47004       return *this;
47005     }
47006 
setMaxContentLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT47007     HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
47008     {
47009       maxContentLightLevel = maxContentLightLevel_;
47010       return *this;
47011     }
47012 
setMaxFrameAverageLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT47013     HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
47014     {
47015       maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
47016       return *this;
47017     }
47018 
47019 
operator VkHdrMetadataEXT const&VULKAN_HPP_NAMESPACE::HdrMetadataEXT47020     operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT
47021     {
47022       return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
47023     }
47024 
operator VkHdrMetadataEXT&VULKAN_HPP_NAMESPACE::HdrMetadataEXT47025     operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
47026     {
47027       return *reinterpret_cast<VkHdrMetadataEXT*>( this );
47028     }
47029 
47030 
47031 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47032     auto operator<=>( HdrMetadataEXT const& ) const = default;
47033 #else
operator ==VULKAN_HPP_NAMESPACE::HdrMetadataEXT47034     bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47035     {
47036       return ( sType == rhs.sType )
47037           && ( pNext == rhs.pNext )
47038           && ( displayPrimaryRed == rhs.displayPrimaryRed )
47039           && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
47040           && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
47041           && ( whitePoint == rhs.whitePoint )
47042           && ( maxLuminance == rhs.maxLuminance )
47043           && ( minLuminance == rhs.minLuminance )
47044           && ( maxContentLightLevel == rhs.maxContentLightLevel )
47045           && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
47046     }
47047 
operator !=VULKAN_HPP_NAMESPACE::HdrMetadataEXT47048     bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47049     {
47050       return !operator==( rhs );
47051     }
47052 #endif
47053 
47054 
47055 
47056   public:
47057     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
47058     const void* pNext = {};
47059     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
47060     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
47061     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
47062     VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
47063     float maxLuminance = {};
47064     float minLuminance = {};
47065     float maxContentLightLevel = {};
47066     float maxFrameAverageLightLevel = {};
47067 
47068   };
47069   static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" );
47070   static_assert( std::is_standard_layout<HdrMetadataEXT>::value, "struct wrapper is not a standard layout!" );
47071 
47072   template <>
47073   struct CppType<StructureType, StructureType::eHdrMetadataEXT>
47074   {
47075     using Type = HdrMetadataEXT;
47076   };
47077 
47078   struct SemaphoreSignalInfo
47079   {
47080     static const bool allowDuplicate = false;
47081     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
47082 
47083 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47084     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}) VULKAN_HPP_NOEXCEPT
47085     : semaphore( semaphore_ ), value( value_ )
47086     {}
47087 
47088     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47089 
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47090     SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47091     {
47092       *this = rhs;
47093     }
47094 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47095 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47096     SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47097     {
47098       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>( &rhs );
47099       return *this;
47100     }
47101 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47102     SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47103     {
47104       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreSignalInfo ) );
47105       return *this;
47106     }
47107 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47108     SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47109     {
47110       pNext = pNext_;
47111       return *this;
47112     }
47113 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47114     SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
47115     {
47116       semaphore = semaphore_;
47117       return *this;
47118     }
47119 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47120     SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
47121     {
47122       value = value_;
47123       return *this;
47124     }
47125 
47126 
operator VkSemaphoreSignalInfo const&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47127     operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT
47128     {
47129       return *reinterpret_cast<const VkSemaphoreSignalInfo*>( this );
47130     }
47131 
operator VkSemaphoreSignalInfo&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47132     operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
47133     {
47134       return *reinterpret_cast<VkSemaphoreSignalInfo*>( this );
47135     }
47136 
47137 
47138 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47139     auto operator<=>( SemaphoreSignalInfo const& ) const = default;
47140 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47141     bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47142     {
47143       return ( sType == rhs.sType )
47144           && ( pNext == rhs.pNext )
47145           && ( semaphore == rhs.semaphore )
47146           && ( value == rhs.value );
47147     }
47148 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47149     bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47150     {
47151       return !operator==( rhs );
47152     }
47153 #endif
47154 
47155 
47156 
47157   public:
47158     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
47159     const void* pNext = {};
47160     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
47161     uint64_t value = {};
47162 
47163   };
47164   static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" );
47165   static_assert( std::is_standard_layout<SemaphoreSignalInfo>::value, "struct wrapper is not a standard layout!" );
47166 
47167   template <>
47168   struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
47169   {
47170     using Type = SemaphoreSignalInfo;
47171   };
47172   using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
47173 
47174   struct SemaphoreWaitInfo
47175   {
47176     static const bool allowDuplicate = false;
47177     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
47178 
47179 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47180     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
47181     : flags( flags_ ), semaphoreCount( semaphoreCount_ ), pSemaphores( pSemaphores_ ), pValues( pValues_ )
47182     {}
47183 
47184     VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47185 
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47186     SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47187     {
47188       *this = rhs;
47189     }
47190 
47191 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47192     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_ = {} )
47193     : flags( flags_ ), semaphoreCount( static_cast<uint32_t>( semaphores_.size() ) ), pSemaphores( semaphores_.data() ), pValues( values_.data() )
47194     {
47195 #ifdef VULKAN_HPP_NO_EXCEPTIONS
47196       VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() );
47197 #else
47198       if ( semaphores_.size() != values_.size() )
47199       {
47200         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" );
47201       }
47202 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
47203     }
47204 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47205 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47206 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47207     SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47208     {
47209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>( &rhs );
47210       return *this;
47211     }
47212 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47213     SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47214     {
47215       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreWaitInfo ) );
47216       return *this;
47217     }
47218 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47219     SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47220     {
47221       pNext = pNext_;
47222       return *this;
47223     }
47224 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47225     SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
47226     {
47227       flags = flags_;
47228       return *this;
47229     }
47230 
setSemaphoreCountVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47231     SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
47232     {
47233       semaphoreCount = semaphoreCount_;
47234       return *this;
47235     }
47236 
setPSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47237     SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT
47238     {
47239       pSemaphores = pSemaphores_;
47240       return *this;
47241     }
47242 
47243 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47244     SemaphoreWaitInfo & setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ ) VULKAN_HPP_NOEXCEPT
47245     {
47246       semaphoreCount = static_cast<uint32_t>( semaphores_.size() );
47247       pSemaphores = semaphores_.data();
47248       return *this;
47249     }
47250 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47251 
setPValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47252     SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT
47253     {
47254       pValues = pValues_;
47255       return *this;
47256     }
47257 
47258 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47259     SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
47260     {
47261       semaphoreCount = static_cast<uint32_t>( values_.size() );
47262       pValues = values_.data();
47263       return *this;
47264     }
47265 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47266 
47267 
operator VkSemaphoreWaitInfo const&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47268     operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT
47269     {
47270       return *reinterpret_cast<const VkSemaphoreWaitInfo*>( this );
47271     }
47272 
operator VkSemaphoreWaitInfo&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47273     operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
47274     {
47275       return *reinterpret_cast<VkSemaphoreWaitInfo*>( this );
47276     }
47277 
47278 
47279 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47280     auto operator<=>( SemaphoreWaitInfo const& ) const = default;
47281 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47282     bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47283     {
47284       return ( sType == rhs.sType )
47285           && ( pNext == rhs.pNext )
47286           && ( flags == rhs.flags )
47287           && ( semaphoreCount == rhs.semaphoreCount )
47288           && ( pSemaphores == rhs.pSemaphores )
47289           && ( pValues == rhs.pValues );
47290     }
47291 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47292     bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47293     {
47294       return !operator==( rhs );
47295     }
47296 #endif
47297 
47298 
47299 
47300   public:
47301     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
47302     const void* pNext = {};
47303     VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
47304     uint32_t semaphoreCount = {};
47305     const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {};
47306     const uint64_t* pValues = {};
47307 
47308   };
47309   static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" );
47310   static_assert( std::is_standard_layout<SemaphoreWaitInfo>::value, "struct wrapper is not a standard layout!" );
47311 
47312   template <>
47313   struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
47314   {
47315     using Type = SemaphoreWaitInfo;
47316   };
47317   using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
47318 
47319 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47320   class Device;
47321   template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47322   using UniqueAccelerationStructureKHR = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47323   using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47324   template <typename Dispatch> class UniqueHandleTraits<Buffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47325   using UniqueBuffer = UniqueHandle<Buffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47326   template <typename Dispatch> class UniqueHandleTraits<BufferView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47327   using UniqueBufferView = UniqueHandle<BufferView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47328   template <typename Dispatch> class UniqueHandleTraits<CommandBuffer, Dispatch> { public: using deleter = PoolFree<Device, CommandPool, Dispatch>; };
47329   using UniqueCommandBuffer = UniqueHandle<CommandBuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47330   template <typename Dispatch> class UniqueHandleTraits<CommandPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47331   using UniqueCommandPool = UniqueHandle<CommandPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47332 #ifdef VK_ENABLE_BETA_EXTENSIONS
47333   template <typename Dispatch> class UniqueHandleTraits<DeferredOperationKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47334   using UniqueDeferredOperationKHR = UniqueHandle<DeferredOperationKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47335 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47336   template <typename Dispatch> class UniqueHandleTraits<DescriptorPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47337   using UniqueDescriptorPool = UniqueHandle<DescriptorPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47338   template <typename Dispatch> class UniqueHandleTraits<DescriptorSet, Dispatch> { public: using deleter = PoolFree<Device, DescriptorPool, Dispatch>; };
47339   using UniqueDescriptorSet = UniqueHandle<DescriptorSet, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47340   template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47341   using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47342   template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47343   using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47344   using UniqueDescriptorUpdateTemplateKHR = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47345   template <typename Dispatch> class UniqueHandleTraits<DeviceMemory, Dispatch> { public: using deleter = ObjectFree<Device, Dispatch>; };
47346   using UniqueDeviceMemory = UniqueHandle<DeviceMemory, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47347   template <typename Dispatch> class UniqueHandleTraits<Event, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47348   using UniqueEvent = UniqueHandle<Event, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47349   template <typename Dispatch> class UniqueHandleTraits<Fence, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47350   using UniqueFence = UniqueHandle<Fence, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47351   template <typename Dispatch> class UniqueHandleTraits<Framebuffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47352   using UniqueFramebuffer = UniqueHandle<Framebuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47353   template <typename Dispatch> class UniqueHandleTraits<Image, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47354   using UniqueImage = UniqueHandle<Image, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47355   template <typename Dispatch> class UniqueHandleTraits<ImageView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47356   using UniqueImageView = UniqueHandle<ImageView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47357   template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47358   using UniqueIndirectCommandsLayoutNV = UniqueHandle<IndirectCommandsLayoutNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47359   template <typename Dispatch> class UniqueHandleTraits<Pipeline, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47360   using UniquePipeline = UniqueHandle<Pipeline, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47361   template <typename Dispatch> class UniqueHandleTraits<PipelineCache, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47362   using UniquePipelineCache = UniqueHandle<PipelineCache, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47363   template <typename Dispatch> class UniqueHandleTraits<PipelineLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47364   using UniquePipelineLayout = UniqueHandle<PipelineLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47365   template <typename Dispatch> class UniqueHandleTraits<PrivateDataSlotEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47366   using UniquePrivateDataSlotEXT = UniqueHandle<PrivateDataSlotEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47367   template <typename Dispatch> class UniqueHandleTraits<QueryPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47368   using UniqueQueryPool = UniqueHandle<QueryPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47369   template <typename Dispatch> class UniqueHandleTraits<RenderPass, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47370   using UniqueRenderPass = UniqueHandle<RenderPass, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47371   template <typename Dispatch> class UniqueHandleTraits<Sampler, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47372   using UniqueSampler = UniqueHandle<Sampler, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47373   template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47374   using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47375   using UniqueSamplerYcbcrConversionKHR = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47376   template <typename Dispatch> class UniqueHandleTraits<Semaphore, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47377   using UniqueSemaphore = UniqueHandle<Semaphore, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47378   template <typename Dispatch> class UniqueHandleTraits<ShaderModule, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47379   using UniqueShaderModule = UniqueHandle<ShaderModule, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47380   template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47381   using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47382   template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47383   using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47384 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47385 
47386   class Device
47387   {
47388   public:
47389     using CType = VkDevice;
47390 
47391     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice;
47392     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
47393 
47394   public:
Device()47395     VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT
47396       : m_device(VK_NULL_HANDLE)
47397     {}
47398 
Device(std::nullptr_t)47399     VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
47400       : m_device(VK_NULL_HANDLE)
47401     {}
47402 
Device(VkDevice device)47403     VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT
47404       : m_device( device )
47405     {}
47406 
47407 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDevice device)47408     Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT
47409     {
47410       m_device = device;
47411       return *this;
47412     }
47413 #endif
47414 
operator =(std::nullptr_t)47415     Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
47416     {
47417       m_device = VK_NULL_HANDLE;
47418       return *this;
47419     }
47420 
47421 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47422     auto operator<=>( Device const& ) const = default;
47423 #else
operator ==(Device const & rhs) const47424     bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47425     {
47426       return m_device == rhs.m_device;
47427     }
47428 
operator !=(Device const & rhs) const47429     bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47430     {
47431       return m_device != rhs.m_device;
47432     }
47433 
operator <(Device const & rhs) const47434     bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47435     {
47436       return m_device < rhs.m_device;
47437     }
47438 #endif
47439 
47440 
47441 #ifdef VK_USE_PLATFORM_WIN32_KHR
47442 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47443     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47444     VULKAN_HPP_NODISCARD Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47445 #else
47446     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47447     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;
47448 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47449 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
47450 
47451 
47452     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47453     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;
47454 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47455     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47456     VULKAN_HPP_NODISCARD ResultValue<uint32_t> acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47458 
47459     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47460     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;
47461 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47462     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47463     VULKAN_HPP_NODISCARD ResultValue<uint32_t> acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47464 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47465 
47466     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47467     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;
47468 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47469     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47470     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;
47471 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47472 
47473 
47474     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47475     VULKAN_HPP_NODISCARD Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47476 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47477     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47478     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47479 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47480 
47481     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47482     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;
47483 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47484     template<typename Allocator  = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47485     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47486     template<typename Allocator  = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, CommandBuffer>::value, int>::type = 0>
47487     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47488 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47489     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<CommandBuffer, Dispatch>>>
47490     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47491     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<CommandBuffer, Dispatch>>, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type = 0>
47492     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47493 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47495 
47496     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47497     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;
47498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47499     template<typename Allocator  = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47500     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47501     template<typename Allocator  = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DescriptorSet>::value, int>::type = 0>
47502     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47503 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47504     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<DescriptorSet, Dispatch>>>
47505     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47506     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<DescriptorSet, Dispatch>>, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type = 0>
47507     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47508 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47510 
47511     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47512     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;
47513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47514     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47515     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;
47516 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47517     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47518     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47519 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47520 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47521 
47522 
47523 #ifdef VK_ENABLE_BETA_EXTENSIONS
47524     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47525     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;
47526 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47527     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47528     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;
47529 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47530 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47531 
47532     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47533     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;
47534 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47535     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47536     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;
47537 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47538 
47539 
47540 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47541     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47542     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;
47543 #else
47544     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47545     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;
47546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47547 
47548 
47549 
47550     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47551     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;
47552 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47554     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;
47555 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47556 
47557     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47558     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;
47559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47561     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;
47562 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47563 
47564 
47565 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47566     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47567     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;
47568 #else
47569     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47570     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;
47571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47572 
47573 
47574 
47575     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47576     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;
47577 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47578     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47579     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;
47580 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47581 
47582     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47583     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;
47584 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47585     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47586     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;
47587 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47588 
47589 #ifdef VK_ENABLE_BETA_EXTENSIONS
47590     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47591     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;
47592 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47593     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47594     VULKAN_HPP_NODISCARD 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;
47595 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47596 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47597 
47598 
47599 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47600     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47601     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;
47602 #else
47603     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47604     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;
47605 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47606 
47607 
47608 
47609 #ifdef VK_ENABLE_BETA_EXTENSIONS
47610     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47611     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47612 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47613     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47614     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47615 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47616 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47617 
47618 
47619 #ifdef VK_ENABLE_BETA_EXTENSIONS
47620     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47621     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47622 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47623     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47624     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47625 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47626 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47627 
47628 
47629 #ifdef VK_ENABLE_BETA_EXTENSIONS
47630     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47631     VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47632 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47633     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47634     VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47635 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47636 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47637 
47638 #ifdef VK_ENABLE_BETA_EXTENSIONS
47639     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47640     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;
47641 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47642     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47643     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;
47644 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47645     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47646     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47647 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47648 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47649 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47650 
47651     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47652     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;
47653 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47654     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47655     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;
47656 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47657     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47658     typename ResultValueType<UniqueHandle<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;
47659 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47660 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47661 
47662     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47663     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;
47664 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47665     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47666     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;
47667 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47668     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47669     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47670 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47671 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47672 
47673     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47674     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;
47675 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47676     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47677     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;
47678 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47679     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47680     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47681 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47682 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47683 
47684     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47685     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;
47686 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47687     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47688     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;
47689 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47690     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47691     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47692 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47693 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47694 
47695     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47696     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;
47697 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47698     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47699     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> 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;
47700     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
47701     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47702     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47703     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;
47704 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47705     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
47706     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> 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;
47707     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
47708     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47709     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47710     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;
47711 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47712 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47713 
47714 #ifdef VK_ENABLE_BETA_EXTENSIONS
47715     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47716     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;
47717 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47718     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47719     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;
47720 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47721     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47722     typename ResultValueType<UniqueHandle<DeferredOperationKHR,Dispatch>>::type createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47723 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47725 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47726 
47727     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47728     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;
47729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47730     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47731     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;
47732 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47733     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47734     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47735 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47736 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47737 
47738     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47739     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;
47740 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47741     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47742     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;
47743 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47744     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47745     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47746 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47747 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47748 
47749     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47750     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;
47751 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47752     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47753     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;
47754 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47755     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47756     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47757 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47758 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47759 
47760     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47761     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;
47762 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47763     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47764     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;
47765 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47766     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47767     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47768 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47769 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47770 
47771     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47772     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;
47773 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47774     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47775     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;
47776 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47777     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47778     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47779 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47780 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47781 
47782     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47783     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;
47784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47785     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47786     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;
47787 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47788     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47789     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47790 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47791 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47792 
47793     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47794     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;
47795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47796     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47797     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;
47798 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47799     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47800     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47801 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47802 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47803 
47804     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47805     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;
47806 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47807     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47808     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> 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;
47809     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
47810     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47811     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47812     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;
47813 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47814     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
47815     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> 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;
47816     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
47817     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47818     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47819     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;
47820 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47821 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47822 
47823     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47824     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;
47825 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47826     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47827     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;
47828 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47829     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47830     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47831 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47832 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47833 
47834     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47835     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;
47836 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47837     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47838     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;
47839 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47840     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47841     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47842 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47843 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47844 
47845     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47846     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;
47847 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47848     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47849     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;
47850 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47851     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47852     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47853 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47854 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47855 
47856     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47857     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;
47858 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47859     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47860     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;
47861 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47862     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47863     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47864 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47866 
47867     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47868     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;
47869 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47870     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47871     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;
47872 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47873     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47874     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47875 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47877 
47878     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47879     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;
47880 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47881     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47882     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;
47883 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47884     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47885     typename ResultValueType<UniqueHandle<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;
47886 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47887 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47888 
47889     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47890     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;
47891 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47892     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47893     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;
47894 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47895     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47896     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47897 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47898 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47899 
47900 #ifdef VK_ENABLE_BETA_EXTENSIONS
47901     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47902     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;
47903 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47904     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47905     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> 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;
47906     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
47907     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47908     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47909     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;
47910 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47911     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
47912     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> 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;
47913     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
47914     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47915     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47916     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;
47917 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47918 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47919 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47920 
47921     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47922     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;
47923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47924     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47925     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> 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;
47926     template<typename Allocator  = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
47927     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline,Allocator>> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47928     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47929     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;
47930 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47931     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
47932     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> 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;
47933     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
47934     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47935     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47936     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;
47937 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47938 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47939 
47940     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47941     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;
47942 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47943     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47944     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;
47945 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47946     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47947     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47948 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47949 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47950 
47951     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47952     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;
47953 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47954     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47955     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;
47956 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47957     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47958     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47959 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47960 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47961 
47962     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47963     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;
47964 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47965     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47966     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;
47967 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47968     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47969     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47970 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47972 
47973     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47974     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;
47975 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47976     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47977     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;
47978 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47979     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47980     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47981 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47982 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47983 
47984     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47985     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;
47986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47987     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47988     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;
47989 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47990     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47991     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
47992 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47993 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47994 
47995     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47996     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;
47997 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47998     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47999     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;
48000 #ifndef VULKAN_HPP_NO_SMART_HANDLE
48001     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48002     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
48003 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48004 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48005 
48006     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48007     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;
48008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48009     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48010     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;
48011 #ifndef VULKAN_HPP_NO_SMART_HANDLE
48012     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48013     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
48014 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48016 
48017     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48018     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;
48019 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48020     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48021     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;
48022 #ifndef VULKAN_HPP_NO_SMART_HANDLE
48023     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48024     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
48025 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48026 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48027 
48028     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48029     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;
48030 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48031     template<typename Allocator  = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48032     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::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;
48033     template<typename Allocator  = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, SwapchainKHR>::value, int>::type = 0>
48034     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48035     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48036     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;
48037 #ifndef VULKAN_HPP_NO_SMART_HANDLE
48038     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<SwapchainKHR, Dispatch>>>
48039     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::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;
48040     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename Allocator  = std::allocator<UniqueHandle<SwapchainKHR, Dispatch>>, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<SwapchainKHR, Dispatch>>::value, int>::type = 0>
48041     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48042     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48043     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;
48044 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48045 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48046 
48047     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48048     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;
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::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;
48052 #ifndef VULKAN_HPP_NO_SMART_HANDLE
48053     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48054     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
48055 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48057 
48058     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48059     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;
48060 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48061     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48062     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;
48063 #ifndef VULKAN_HPP_NO_SMART_HANDLE
48064     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48065     typename ResultValueType<UniqueHandle<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;
48066 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48067 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48068 
48069 
48070     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48071     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48073     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48074     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48075 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48076 
48077 
48078     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48079     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48080 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48081     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48082     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48083 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48084 
48085 #ifdef VK_ENABLE_BETA_EXTENSIONS
48086 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48087     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48088     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48089 #else
48090     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48091     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48092 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48093 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48094 
48095 
48096 #ifdef VK_ENABLE_BETA_EXTENSIONS
48097     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48098     void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48100     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48101     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;
48102 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48103 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48104 
48105     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48106     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48107 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48108     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48109     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;
48110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48111 
48112 
48113     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48114     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48116     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48117     void destroy( 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;
48118 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48119 
48120 
48121     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48122     void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48124     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48125     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;
48126 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48127 
48128 
48129     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48130     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48131 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48132     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48133     void destroy( 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;
48134 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48135 
48136 
48137     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48138     void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48139 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48140     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48141     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;
48142 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48143 
48144 
48145     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48146     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48147 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48148     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48149     void destroy( 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;
48150 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48151 
48152 
48153     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48154     void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48156     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48157     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;
48158 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48159 
48160 
48161     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48162     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48163 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48164     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48165     void destroy( 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;
48166 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48167 
48168 
48169 #ifdef VK_ENABLE_BETA_EXTENSIONS
48170     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48171     void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48172 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48173     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48174     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;
48175 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48176 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48177 
48178 
48179 #ifdef VK_ENABLE_BETA_EXTENSIONS
48180     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48181     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48182 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48183     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48184     void destroy( 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;
48185 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48186 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48187 
48188 
48189     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48190     void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48191 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48192     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48193     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;
48194 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48195 
48196 
48197     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48198     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48200     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48201     void destroy( 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;
48202 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48203 
48204 
48205     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48206     void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48207 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48208     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48209     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;
48210 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48211 
48212 
48213     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48214     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48215 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48217     void destroy( 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;
48218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48219 
48220 
48221     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48222     void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48223 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48224     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48225     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;
48226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48227 
48228     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48229     void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48230 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48231     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48232     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;
48233 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48234 
48235 
48236     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48237     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48238 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48239     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48240     void destroy( 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;
48241 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48242 
48243 
48244     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48245     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48246 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48247     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48248     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48249 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48250 
48251 
48252     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48253     void destroyEvent( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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     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;
48257 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48258 
48259 
48260     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48261     void destroy( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48262 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48263     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48264     void destroy( 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;
48265 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48266 
48267 
48268     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48269     void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48270 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48271     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48272     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;
48273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48274 
48275 
48276     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48277     void destroy( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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     void destroy( 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;
48281 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48282 
48283 
48284     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48285     void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48286 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48287     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48288     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;
48289 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48290 
48291 
48292     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48293     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48294 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48295     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48296     void destroy( 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;
48297 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48298 
48299 
48300     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48301     void destroyImage( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48302 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48303     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48304     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;
48305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48306 
48307 
48308     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48309     void destroy( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48310 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48311     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48312     void destroy( 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;
48313 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48314 
48315 
48316     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48317     void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48318 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48319     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48320     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;
48321 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48322 
48323 
48324     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48325     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48326 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48327     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48328     void destroy( 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;
48329 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48330 
48331 
48332     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48333     void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48335     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48336     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;
48337 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48338 
48339 
48340     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48341     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48342 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48343     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48344     void destroy( 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;
48345 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48346 
48347 
48348     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48349     void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48350 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48351     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48352     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;
48353 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48354 
48355 
48356     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48357     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48358 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48359     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48360     void destroy( 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;
48361 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48362 
48363 
48364     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48365     void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48366 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48367     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48368     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;
48369 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48370 
48371 
48372     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48373     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48374 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48375     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48376     void destroy( 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;
48377 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48378 
48379 
48380     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48381     void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48382 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48383     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48384     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;
48385 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48386 
48387 
48388     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48389     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48390 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48391     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48392     void destroy( 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;
48393 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48394 
48395 
48396     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48397     void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 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;
48401 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48402 
48403 
48404     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48405     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 destroy( 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;
48409 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48410 
48411 
48412     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48413     void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 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;
48417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48418 
48419 
48420     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48421     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 destroy( 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;
48425 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48426 
48427 
48428     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48429     void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 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;
48433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48434 
48435 
48436     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48437     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 destroy( 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;
48441 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48442 
48443 
48444     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48445     void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 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;
48449 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48450 
48451 
48452     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48453     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 destroy( 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;
48457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48458 
48459 
48460     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48461     void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 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 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;
48465 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48466 
48467     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48468     void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48469 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48470     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48471     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;
48472 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48473 
48474 
48475     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48476     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48478     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48479     void destroy( 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;
48480 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48481 
48482 
48483     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48484     void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48485 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48486     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48487     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;
48488 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48489 
48490 
48491     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48492     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48493 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48494     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48495     void destroy( 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;
48496 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48497 
48498 
48499     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48500     void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48501 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48502     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48503     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;
48504 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48505 
48506 
48507     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48508     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48509 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48510     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48511     void destroy( 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;
48512 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48513 
48514 
48515     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48516     void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48517 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48518     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48519     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;
48520 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48521 
48522 
48523     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48524     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48525 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48526     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48527     void destroy( 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;
48528 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48529 
48530 
48531     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48532     void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48534     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48535     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;
48536 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48537 
48538 
48539     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48540     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48541 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48542     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48543     void destroy( 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;
48544 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48545 
48546 
48547 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48548     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48549     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48550 #else
48551     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48552     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48553 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48554 
48555 
48556 
48557     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48558     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;
48559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48561     typename ResultValueType<void>::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48562 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48563 
48564 
48565     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48566     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;
48567 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48568     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48569     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;
48570 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48571 
48572 
48573     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48574     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;
48575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48576     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48577     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;
48578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48579 
48580 
48581     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48582     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;
48583 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48584     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48585     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;
48586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48587 
48588 
48589     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48590     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;
48591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48592     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48593     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;
48594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48595 
48596 
48597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48598     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;
48599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48600     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48601     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;
48602 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48603 
48604 
48605     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48606     void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48607 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48608     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48609     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;
48610 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48611 
48612 
48613     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48614     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48616     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48617     void free( 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;
48618 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48619 
48620 #ifdef VK_ENABLE_BETA_EXTENSIONS
48621     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48622     DeviceAddress getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48623 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48624     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48625     DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48626 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48627 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48628 
48629 
48630     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48631     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;
48632 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48633       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48634     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;
48635       template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48636     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;
48637       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48638     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;
48639 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48640 
48641 #ifdef VK_ENABLE_BETA_EXTENSIONS
48642     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48643     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;
48644 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48645     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48646     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48647     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48648     StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48649 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48650 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48651 
48652     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48653     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;
48654 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48655     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48656     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48657     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48658     StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48659 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48660 
48661 #ifdef VK_USE_PLATFORM_ANDROID_KHR
48662     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48663     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;
48664 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48665     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48666     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;
48667     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48668     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;
48669 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48670 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
48671 
48672     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48673     DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48674 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48675     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48676     DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48677 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48678 
48679     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48680     DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, 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     DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48684 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48685 
48686     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48687     DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48688 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48689     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48690     DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48691 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48692 
48693     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48694     void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48696     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48697     VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48699 
48700     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48701     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;
48702 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48703     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48704     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48705     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48706     StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48708 
48709     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48710     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;
48711 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48712     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48713     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48714     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48715     StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48717 
48718     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48719     uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48721     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48722     uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48724 
48725     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48726     uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48727 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48728     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48729     uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48730 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48731 
48732     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48733     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;
48734 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48735     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48736     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;
48737 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48738 
48739 #ifdef VK_ENABLE_BETA_EXTENSIONS
48740 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48741     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48742     uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48743 #else
48744     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48745     uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48747 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48748 
48749 #ifdef VK_ENABLE_BETA_EXTENSIONS
48750 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48751     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48752     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48753 #else
48754     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48755     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48757 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48758 
48759     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48760     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;
48761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48762     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48763     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48764     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48765     StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48766 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48767 
48768     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48769     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;
48770 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48771     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48772     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48773     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48774     StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48775 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48776 
48777 
48778 #ifdef VK_ENABLE_BETA_EXTENSIONS
48779     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48780     VULKAN_HPP_NODISCARD Result getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48782     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48783     typename ResultValueType<void>::type getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48785 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48786 
48787     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48788     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;
48789 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48790     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48791     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;
48792 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48793 
48794     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48795     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;
48796 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48797     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48798     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;
48799 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48800 
48801     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48802     VULKAN_HPP_NODISCARD Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48803 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48804     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48805     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type getGroupPresentCapabilitiesKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48806 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48807 
48808 #ifdef VK_USE_PLATFORM_WIN32_KHR
48809     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48810     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;
48811 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48812     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48813     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;
48814 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48815 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
48816 
48817     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48818     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;
48819 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48820     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48821     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;
48822 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48823 
48824     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48825     void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48826 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48827     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48828     VULKAN_HPP_NAMESPACE::DeviceSize getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48829 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48830 
48831     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48832     uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48833 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48834     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48835     uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48836 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48837 
48838     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48839     uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, 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     uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48843 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48844 
48845     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48846     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48847 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48848     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48849     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48851 
48852     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48853     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;
48854 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48855     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48856     VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48857 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48858 
48859     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48860     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;
48861 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48862     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48863     VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48864 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48865 
48866 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48867     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48868     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48869 #else
48870     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48871     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48872 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48873 
48874     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48875     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;
48876 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48877     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48878     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48879 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48880 
48881 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48882     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48883     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48884 #else
48885     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48886     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48887 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48888 
48889 #ifdef VK_USE_PLATFORM_WIN32_KHR
48890     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48891     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;
48892 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48893     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48894     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48895 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48896 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
48897 
48898     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48899     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;
48900 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48901     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48902     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48903     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48904     StructureChain<X, Y, Z...> getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48905 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48906 
48907     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48908     Result getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48910     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48911     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48912 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48913 
48914     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48915     void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48916 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48917     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48918     VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48919 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48920 
48921     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48922     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;
48923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48924     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48925     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48926     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48927     StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48928 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48929 
48930     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48931     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;
48932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48933     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48934     VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48935     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48936     StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48937 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48938 
48939 
48940     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48941     void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48942 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48943     template <typename SparseImageMemoryRequirementsAllocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48944     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48945     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>
48946     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48947 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48948 
48949 
48950     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48951     void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48952 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48953     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48954     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48955     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>
48956     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48957 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48958 
48959     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48960     void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48962     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48963     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48964     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>
48965     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48966 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48967 
48968     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48969     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;
48970 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48971     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48972     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;
48973 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48974 
48975     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48976     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;
48977 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48978     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48979     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;
48980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48981 
48982     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48983     uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
48984 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48985     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48986     uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48988 
48989 #ifdef VK_USE_PLATFORM_ANDROID_KHR
48990     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48991     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;
48992 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48993     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48994     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48995 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48996 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
48997 
48998     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48999     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;
49000 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49001     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49002     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49003 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49004 
49005     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49006     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;
49007 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49008     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49009     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;
49010 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49011 
49012     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49013     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;
49014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49015     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49016     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;
49017 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49018 
49019 #ifdef VK_USE_PLATFORM_WIN32_KHR
49020     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49021     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;
49022 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49023     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49024     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49025 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49026 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49027 
49028 #ifdef VK_USE_PLATFORM_WIN32_KHR
49029     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49030     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;
49031 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49032     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49033     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;
49034 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49035 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49036 
49037 #ifdef VK_USE_PLATFORM_WIN32_KHR
49038     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49039     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;
49040 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49041     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49042     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;
49043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49044 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49045 
49046     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49047     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;
49048 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49049     template<typename Allocator  = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49050     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49051     template<typename Allocator  = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PastPresentationTimingGOOGLE>::value, int>::type = 0>
49052     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49053 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49054 
49055     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49056     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;
49057 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49058     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49059     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;
49060 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49061 
49062     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49063     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;
49064 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49065     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49066     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49067     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49068     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49069 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49070 
49071     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49072     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;
49073 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49074     template<typename Allocator  = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49075     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49076     template<typename Allocator  = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type = 0>
49077     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49078 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49079 
49080     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49081     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;
49082 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49083     template<typename Allocator  = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49084     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49085     template<typename Allocator  = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type = 0>
49086     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49087 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49088 
49089     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49090     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;
49091 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49092     template<typename Allocator  = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49093     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49094     template<typename Allocator  = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type = 0>
49095     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49097 
49098     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49099     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;
49100 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49101     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49102     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;
49103 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49104 
49105 
49106     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49107     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 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49109       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49110     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;
49111       template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49112     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;
49113       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49114     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;
49115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49116 
49117 
49118 #ifdef VK_ENABLE_BETA_EXTENSIONS
49119     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49120     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;
49121 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49122       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49123     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;
49124       template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49125     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;
49126       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49127     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;
49128 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49129 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49130 
49131 
49132 #ifdef VK_ENABLE_BETA_EXTENSIONS
49133     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49134     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;
49135 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49136       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49137     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;
49138       template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49139     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;
49140       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49141     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;
49142 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49143 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49144 
49145     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49146     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;
49147 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49148       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49149     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;
49150       template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49151     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;
49152       template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49153     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;
49154 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49155 
49156     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49157     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;
49158 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49159     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49160     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;
49161 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49162 
49163     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49164     void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, 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     VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49168 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49169 
49170     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49171     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;
49172 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49173     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49174     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;
49175 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49176 
49177     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49178     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;
49179 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49180     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49181     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;
49182 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49183 
49184     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49185     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;
49186 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49187     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49188     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49189 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49190 
49191 #ifdef VK_USE_PLATFORM_WIN32_KHR
49192     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49193     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;
49194 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49195     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49196     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49197 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49198 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49199 
49200     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49201     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;
49202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49203     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49204     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::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;
49205     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49206     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49208 
49209     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49210     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;
49211 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49212     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49213     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;
49214 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49215 
49216     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49217     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;
49218 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49219     template<typename Allocator  = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49220     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49221     template<typename Allocator  = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Image>::value, int>::type = 0>
49222     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49223 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49224 
49225 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49226     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49227     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
49228 #else
49229     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49230     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49231 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49232 
49233     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49234     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;
49235 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49236     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49237     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49238     template<typename Allocator  = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49239     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, 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     VULKAN_HPP_NODISCARD Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, 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_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49248 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49249 
49250 
49251 #ifdef VK_USE_PLATFORM_WIN32_KHR
49252     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49253     VULKAN_HPP_NODISCARD Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49254 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49255     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49256     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49257 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49258 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49259 
49260 
49261     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49262     VULKAN_HPP_NODISCARD Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49263 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49264     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49265     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49266 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49267 
49268 
49269 #ifdef VK_USE_PLATFORM_WIN32_KHR
49270     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49271     VULKAN_HPP_NODISCARD Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49272 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49273     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49274     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49275 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49276 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49277 
49278 
49279     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49280     VULKAN_HPP_NODISCARD Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49281 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49282     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49283     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49284 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49285 
49286 
49287     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49288     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;
49289 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49290     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49291     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;
49292 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49293 
49294     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49295     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;
49296 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49297     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49298     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;
49299 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49300 
49301 
49302     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49303     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;
49304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49305     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49306     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;
49307 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49308 
49309 
49310     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49311     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;
49312 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49313     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49314     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;
49315 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49316 
49317     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49318     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;
49319 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49320     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49321     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;
49322 #ifndef VULKAN_HPP_NO_SMART_HANDLE
49323     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49324     typename ResultValueType<UniqueHandle<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;
49325 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49326 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49327 
49328     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49329     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;
49330 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49331     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49332     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;
49333 #ifndef VULKAN_HPP_NO_SMART_HANDLE
49334     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49335     typename ResultValueType<UniqueHandle<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;
49336 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49337 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49338 
49339 
49340 #ifdef VK_USE_PLATFORM_WIN32_KHR
49341 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49342     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49343     VULKAN_HPP_NODISCARD Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49344 #else
49345     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49346     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;
49347 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49348 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49349 
49350 
49351 
49352 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49353     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49354     VULKAN_HPP_NODISCARD Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49355 #else
49356     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49357     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;
49358 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49359 
49360 
49361 
49362     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49363     void releaseProfilingLockKHR( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49364 
49365 
49366 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49367     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49368     VULKAN_HPP_NODISCARD Result 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 VULKAN_HPP_NOEXCEPT;
49369 #else
49370     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49371     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;
49372 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49373 
49374 
49375 
49376 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49377     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49378     Result 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 VULKAN_HPP_NOEXCEPT;
49379 #else
49380     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49381     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;
49382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49383 
49384 
49385 
49386 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49387     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49388     VULKAN_HPP_NODISCARD Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49389 #else
49390     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49391     typename ResultValueType<void>::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49392 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49393 
49394 
49395 
49396     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49397     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;
49398 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49399     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49400     typename ResultValueType<void>::type resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49401 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49402 
49403 
49404     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49405     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;
49406 
49407     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49408     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;
49409 
49410 
49411     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49412     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49413 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49414     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49415     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49416 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49417 
49418 
49419     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49420     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49421 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49422     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49423     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49424 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49425 
49426 
49427 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49428     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49429     VULKAN_HPP_NODISCARD Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49430 #else
49431     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49432     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;
49433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49434 
49435 
49436 
49437     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49438     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;
49439 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49440     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49441     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;
49442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49443 
49444 
49445     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49446     void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49447 
49448 
49449 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49450     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49451     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;
49452 #else
49453     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49454     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;
49455 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49456 
49457 
49458 
49459     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49460     VULKAN_HPP_NODISCARD Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49461 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49462     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49463     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49464 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49465 
49466     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49467     VULKAN_HPP_NODISCARD Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49468 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49470     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49471 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49472 
49473 
49474     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49475     void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49476 
49477     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49478     void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49479 
49480 
49481     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49482     void uninitializePerformanceApiINTEL( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49483 
49484 
49485     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49486     void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49487 
49488 
49489     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49490     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;
49491 
49492     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49493     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;
49494 
49495 
49496     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49497     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;
49498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49499     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49500     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;
49501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49502 
49503 
49504     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49505     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;
49506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49507     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49508     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;
49509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49510 
49511 
49512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49513     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;
49514 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49515     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49516     VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49518 
49519     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49520     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;
49521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49522     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49523     VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49525 
49526 #ifdef VK_ENABLE_BETA_EXTENSIONS
49527     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49528     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;
49529 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49530     template<typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49531     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;
49532 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49533 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49534 
operator VkDevice() const49535     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT
49536     {
49537       return m_device;
49538     }
49539 
operator bool() const49540     explicit operator bool() const VULKAN_HPP_NOEXCEPT
49541     {
49542       return m_device != VK_NULL_HANDLE;
49543     }
49544 
operator !() const49545     bool operator!() const VULKAN_HPP_NOEXCEPT
49546     {
49547       return m_device == VK_NULL_HANDLE;
49548     }
49549 
49550   private:
49551     VkDevice m_device;
49552   };
49553   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" );
49554 
49555   template <>
49556   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDevice>
49557   {
49558     using type = VULKAN_HPP_NAMESPACE::Device;
49559   };
49560 
49561   template <>
49562   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDevice>
49563   {
49564     using Type = VULKAN_HPP_NAMESPACE::Device;
49565   };
49566 
49567 
49568   template <>
49569   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice>
49570   {
49571     using Type = VULKAN_HPP_NAMESPACE::Device;
49572   };
49573 
49574 
49575   template <>
49576   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Device>
49577   {
49578     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
49579   };
49580 
49581   struct DisplayModeParametersKHR
49582   {
49583 
49584 
49585 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49586     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR(VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {}) VULKAN_HPP_NOEXCEPT
49587     : visibleRegion( visibleRegion_ ), refreshRate( refreshRate_ )
49588     {}
49589 
49590     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49591 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49592     DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49593     {
49594       *this = rhs;
49595     }
49596 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
49597 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49598     DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49599     {
49600       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>( &rhs );
49601       return *this;
49602     }
49603 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49604     DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49605     {
49606       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeParametersKHR ) );
49607       return *this;
49608     }
49609 
setVisibleRegionVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49610     DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
49611     {
49612       visibleRegion = visibleRegion_;
49613       return *this;
49614     }
49615 
setRefreshRateVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49616     DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
49617     {
49618       refreshRate = refreshRate_;
49619       return *this;
49620     }
49621 
49622 
operator VkDisplayModeParametersKHR const&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49623     operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT
49624     {
49625       return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
49626     }
49627 
operator VkDisplayModeParametersKHR&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49628     operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
49629     {
49630       return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
49631     }
49632 
49633 
49634 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49635     auto operator<=>( DisplayModeParametersKHR const& ) const = default;
49636 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49637     bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49638     {
49639       return ( visibleRegion == rhs.visibleRegion )
49640           && ( refreshRate == rhs.refreshRate );
49641     }
49642 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49643     bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49644     {
49645       return !operator==( rhs );
49646     }
49647 #endif
49648 
49649 
49650 
49651   public:
49652     VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
49653     uint32_t refreshRate = {};
49654 
49655   };
49656   static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" );
49657   static_assert( std::is_standard_layout<DisplayModeParametersKHR>::value, "struct wrapper is not a standard layout!" );
49658 
49659   struct DisplayModeCreateInfoKHR
49660   {
49661     static const bool allowDuplicate = false;
49662     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
49663 
49664 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49665     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
49666     : flags( flags_ ), parameters( parameters_ )
49667     {}
49668 
49669     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49670 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49671     DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49672     {
49673       *this = rhs;
49674     }
49675 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
49676 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49677     DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49678     {
49679       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>( &rhs );
49680       return *this;
49681     }
49682 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49683     DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49684     {
49685       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeCreateInfoKHR ) );
49686       return *this;
49687     }
49688 
setPNextVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49689     DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
49690     {
49691       pNext = pNext_;
49692       return *this;
49693     }
49694 
setFlagsVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49695     DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
49696     {
49697       flags = flags_;
49698       return *this;
49699     }
49700 
setParametersVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49701     DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
49702     {
49703       parameters = parameters_;
49704       return *this;
49705     }
49706 
49707 
operator VkDisplayModeCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49708     operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
49709     {
49710       return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
49711     }
49712 
operator VkDisplayModeCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49713     operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
49714     {
49715       return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
49716     }
49717 
49718 
49719 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49720     auto operator<=>( DisplayModeCreateInfoKHR const& ) const = default;
49721 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49722     bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49723     {
49724       return ( sType == rhs.sType )
49725           && ( pNext == rhs.pNext )
49726           && ( flags == rhs.flags )
49727           && ( parameters == rhs.parameters );
49728     }
49729 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR49730     bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
49731     {
49732       return !operator==( rhs );
49733     }
49734 #endif
49735 
49736 
49737 
49738   public:
49739     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
49740     const void* pNext = {};
49741     VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
49742     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
49743 
49744   };
49745   static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" );
49746   static_assert( std::is_standard_layout<DisplayModeCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
49747 
49748   template <>
49749   struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
49750   {
49751     using Type = DisplayModeCreateInfoKHR;
49752   };
49753 
49754   class DisplayModeKHR
49755   {
49756   public:
49757     using CType = VkDisplayModeKHR;
49758 
49759     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR;
49760     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
49761 
49762   public:
DisplayModeKHR()49763     VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT
49764       : m_displayModeKHR(VK_NULL_HANDLE)
49765     {}
49766 
DisplayModeKHR(std::nullptr_t)49767     VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
49768       : m_displayModeKHR(VK_NULL_HANDLE)
49769     {}
49770 
DisplayModeKHR(VkDisplayModeKHR displayModeKHR)49771     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT
49772       : m_displayModeKHR( displayModeKHR )
49773     {}
49774 
49775 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayModeKHR displayModeKHR)49776     DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT
49777     {
49778       m_displayModeKHR = displayModeKHR;
49779       return *this;
49780     }
49781 #endif
49782 
operator =(std::nullptr_t)49783     DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
49784     {
49785       m_displayModeKHR = VK_NULL_HANDLE;
49786       return *this;
49787     }
49788 
49789 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49790     auto operator<=>( DisplayModeKHR const& ) const = default;
49791 #else
operator ==(DisplayModeKHR const & rhs) const49792     bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
49793     {
49794       return m_displayModeKHR == rhs.m_displayModeKHR;
49795     }
49796 
operator !=(DisplayModeKHR const & rhs) const49797     bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
49798     {
49799       return m_displayModeKHR != rhs.m_displayModeKHR;
49800     }
49801 
operator <(DisplayModeKHR const & rhs) const49802     bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
49803     {
49804       return m_displayModeKHR < rhs.m_displayModeKHR;
49805     }
49806 #endif
49807 
operator VkDisplayModeKHR() const49808     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT
49809     {
49810       return m_displayModeKHR;
49811     }
49812 
operator bool() const49813     explicit operator bool() const VULKAN_HPP_NOEXCEPT
49814     {
49815       return m_displayModeKHR != VK_NULL_HANDLE;
49816     }
49817 
operator !() const49818     bool operator!() const VULKAN_HPP_NOEXCEPT
49819     {
49820       return m_displayModeKHR == VK_NULL_HANDLE;
49821     }
49822 
49823   private:
49824     VkDisplayModeKHR m_displayModeKHR;
49825   };
49826   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
49827 
49828   template <>
49829   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayModeKHR>
49830   {
49831     using type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
49832   };
49833 
49834   template <>
49835   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR>
49836   {
49837     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
49838   };
49839 
49840 
49841   template <>
49842   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR>
49843   {
49844     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
49845   };
49846 
49847 
49848   template <>
49849   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
49850   {
49851     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
49852   };
49853 
49854   struct ExtensionProperties
49855   {
49856 
49857 
49858 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties49859     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& extensionName_ = {}, uint32_t specVersion_ = {}) VULKAN_HPP_NOEXCEPT
49860     : extensionName( extensionName_ ), specVersion( specVersion_ )
49861     {}
49862 
49863     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49864 
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties49865     ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
49866     {
49867       *this = rhs;
49868     }
49869 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
49870 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties49871     ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
49872     {
49873       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>( &rhs );
49874       return *this;
49875     }
49876 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties49877     ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
49878     {
49879       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExtensionProperties ) );
49880       return *this;
49881     }
49882 
49883 
operator VkExtensionProperties const&VULKAN_HPP_NAMESPACE::ExtensionProperties49884     operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT
49885     {
49886       return *reinterpret_cast<const VkExtensionProperties*>( this );
49887     }
49888 
operator VkExtensionProperties&VULKAN_HPP_NAMESPACE::ExtensionProperties49889     operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
49890     {
49891       return *reinterpret_cast<VkExtensionProperties*>( this );
49892     }
49893 
49894 
49895 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49896     auto operator<=>( ExtensionProperties const& ) const = default;
49897 #else
operator ==VULKAN_HPP_NAMESPACE::ExtensionProperties49898     bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
49899     {
49900       return ( extensionName == rhs.extensionName )
49901           && ( specVersion == rhs.specVersion );
49902     }
49903 
operator !=VULKAN_HPP_NAMESPACE::ExtensionProperties49904     bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
49905     {
49906       return !operator==( rhs );
49907     }
49908 #endif
49909 
49910 
49911 
49912   public:
49913     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
49914     uint32_t specVersion = {};
49915 
49916   };
49917   static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" );
49918   static_assert( std::is_standard_layout<ExtensionProperties>::value, "struct wrapper is not a standard layout!" );
49919 
49920   struct LayerProperties
49921   {
49922 
49923 
49924 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties49925     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
49926     : layerName( layerName_ ), specVersion( specVersion_ ), implementationVersion( implementationVersion_ ), description( description_ )
49927     {}
49928 
49929     VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49930 
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties49931     LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
49932     {
49933       *this = rhs;
49934     }
49935 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
49936 
operator =VULKAN_HPP_NAMESPACE::LayerProperties49937     LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
49938     {
49939       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>( &rhs );
49940       return *this;
49941     }
49942 
operator =VULKAN_HPP_NAMESPACE::LayerProperties49943     LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
49944     {
49945       memcpy( static_cast<void *>( this ), &rhs, sizeof( LayerProperties ) );
49946       return *this;
49947     }
49948 
49949 
operator VkLayerProperties const&VULKAN_HPP_NAMESPACE::LayerProperties49950     operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT
49951     {
49952       return *reinterpret_cast<const VkLayerProperties*>( this );
49953     }
49954 
operator VkLayerProperties&VULKAN_HPP_NAMESPACE::LayerProperties49955     operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
49956     {
49957       return *reinterpret_cast<VkLayerProperties*>( this );
49958     }
49959 
49960 
49961 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49962     auto operator<=>( LayerProperties const& ) const = default;
49963 #else
operator ==VULKAN_HPP_NAMESPACE::LayerProperties49964     bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
49965     {
49966       return ( layerName == rhs.layerName )
49967           && ( specVersion == rhs.specVersion )
49968           && ( implementationVersion == rhs.implementationVersion )
49969           && ( description == rhs.description );
49970     }
49971 
operator !=VULKAN_HPP_NAMESPACE::LayerProperties49972     bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
49973     {
49974       return !operator==( rhs );
49975     }
49976 #endif
49977 
49978 
49979 
49980   public:
49981     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
49982     uint32_t specVersion = {};
49983     uint32_t implementationVersion = {};
49984     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
49985 
49986   };
49987   static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" );
49988   static_assert( std::is_standard_layout<LayerProperties>::value, "struct wrapper is not a standard layout!" );
49989 
49990   struct PerformanceCounterKHR
49991   {
49992     static const bool allowDuplicate = false;
49993     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
49994 
49995 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR49996     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
49997     : unit( unit_ ), scope( scope_ ), storage( storage_ ), uuid( uuid_ )
49998     {}
49999 
50000     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50001 
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR50002     PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50003     {
50004       *this = rhs;
50005     }
50006 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50007 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50008     PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50009     {
50010       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>( &rhs );
50011       return *this;
50012     }
50013 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50014     PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50015     {
50016       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceCounterKHR ) );
50017       return *this;
50018     }
50019 
50020 
operator VkPerformanceCounterKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50021     operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT
50022     {
50023       return *reinterpret_cast<const VkPerformanceCounterKHR*>( this );
50024     }
50025 
operator VkPerformanceCounterKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50026     operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
50027     {
50028       return *reinterpret_cast<VkPerformanceCounterKHR*>( this );
50029     }
50030 
50031 
50032 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50033     auto operator<=>( PerformanceCounterKHR const& ) const = default;
50034 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50035     bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50036     {
50037       return ( sType == rhs.sType )
50038           && ( pNext == rhs.pNext )
50039           && ( unit == rhs.unit )
50040           && ( scope == rhs.scope )
50041           && ( storage == rhs.storage )
50042           && ( uuid == rhs.uuid );
50043     }
50044 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50045     bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50046     {
50047       return !operator==( rhs );
50048     }
50049 #endif
50050 
50051 
50052 
50053   public:
50054     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
50055     const void* pNext = {};
50056     VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
50057     VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
50058     VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
50059     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
50060 
50061   };
50062   static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" );
50063   static_assert( std::is_standard_layout<PerformanceCounterKHR>::value, "struct wrapper is not a standard layout!" );
50064 
50065   template <>
50066   struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
50067   {
50068     using Type = PerformanceCounterKHR;
50069   };
50070 
50071   struct PerformanceCounterDescriptionKHR
50072   {
50073     static const bool allowDuplicate = false;
50074     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
50075 
50076 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50077     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
50078     : flags( flags_ ), name( name_ ), category( category_ ), description( description_ )
50079     {}
50080 
50081     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50082 
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50083     PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50084     {
50085       *this = rhs;
50086     }
50087 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50088 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50089     PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50090     {
50091       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>( &rhs );
50092       return *this;
50093     }
50094 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50095     PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50096     {
50097       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceCounterDescriptionKHR ) );
50098       return *this;
50099     }
50100 
50101 
operator VkPerformanceCounterDescriptionKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50102     operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT
50103     {
50104       return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR*>( this );
50105     }
50106 
operator VkPerformanceCounterDescriptionKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50107     operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
50108     {
50109       return *reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( this );
50110     }
50111 
50112 
50113 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50114     auto operator<=>( PerformanceCounterDescriptionKHR const& ) const = default;
50115 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50116     bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50117     {
50118       return ( sType == rhs.sType )
50119           && ( pNext == rhs.pNext )
50120           && ( flags == rhs.flags )
50121           && ( name == rhs.name )
50122           && ( category == rhs.category )
50123           && ( description == rhs.description );
50124     }
50125 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50126     bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50127     {
50128       return !operator==( rhs );
50129     }
50130 #endif
50131 
50132 
50133 
50134   public:
50135     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
50136     const void* pNext = {};
50137     VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
50138     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
50139     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
50140     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
50141 
50142   };
50143   static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" );
50144   static_assert( std::is_standard_layout<PerformanceCounterDescriptionKHR>::value, "struct wrapper is not a standard layout!" );
50145 
50146   template <>
50147   struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
50148   {
50149     using Type = PerformanceCounterDescriptionKHR;
50150   };
50151 
50152   struct DisplayModePropertiesKHR
50153   {
50154 
50155 
50156 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50157     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
50158     : displayMode( displayMode_ ), parameters( parameters_ )
50159     {}
50160 
50161     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50162 
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50163     DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50164     {
50165       *this = rhs;
50166     }
50167 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50168 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50169     DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50170     {
50171       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>( &rhs );
50172       return *this;
50173     }
50174 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50175     DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50176     {
50177       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModePropertiesKHR ) );
50178       return *this;
50179     }
50180 
50181 
operator VkDisplayModePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50182     operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50183     {
50184       return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
50185     }
50186 
operator VkDisplayModePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50187     operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
50188     {
50189       return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
50190     }
50191 
50192 
50193 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50194     auto operator<=>( DisplayModePropertiesKHR const& ) const = default;
50195 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50196     bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50197     {
50198       return ( displayMode == rhs.displayMode )
50199           && ( parameters == rhs.parameters );
50200     }
50201 
operator !=VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50202     bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50203     {
50204       return !operator==( rhs );
50205     }
50206 #endif
50207 
50208 
50209 
50210   public:
50211     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
50212     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
50213 
50214   };
50215   static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
50216   static_assert( std::is_standard_layout<DisplayModePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50217 
50218   struct DisplayModeProperties2KHR
50219   {
50220     static const bool allowDuplicate = false;
50221     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
50222 
50223 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50224     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {}) VULKAN_HPP_NOEXCEPT
50225     : displayModeProperties( displayModeProperties_ )
50226     {}
50227 
50228     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50229 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50230     DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50231     {
50232       *this = rhs;
50233     }
50234 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50235 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50236     DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50237     {
50238       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>( &rhs );
50239       return *this;
50240     }
50241 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50242     DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50243     {
50244       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeProperties2KHR ) );
50245       return *this;
50246     }
50247 
50248 
operator VkDisplayModeProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50249     operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
50250     {
50251       return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
50252     }
50253 
operator VkDisplayModeProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50254     operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
50255     {
50256       return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
50257     }
50258 
50259 
50260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50261     auto operator<=>( DisplayModeProperties2KHR const& ) const = default;
50262 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50263     bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50264     {
50265       return ( sType == rhs.sType )
50266           && ( pNext == rhs.pNext )
50267           && ( displayModeProperties == rhs.displayModeProperties );
50268     }
50269 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50270     bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50271     {
50272       return !operator==( rhs );
50273     }
50274 #endif
50275 
50276 
50277 
50278   public:
50279     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
50280     void* pNext = {};
50281     VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
50282 
50283   };
50284   static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" );
50285   static_assert( std::is_standard_layout<DisplayModeProperties2KHR>::value, "struct wrapper is not a standard layout!" );
50286 
50287   template <>
50288   struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
50289   {
50290     using Type = DisplayModeProperties2KHR;
50291   };
50292 
50293   struct DisplayPlaneInfo2KHR
50294   {
50295     static const bool allowDuplicate = false;
50296     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
50297 
50298 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50299     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}) VULKAN_HPP_NOEXCEPT
50300     : mode( mode_ ), planeIndex( planeIndex_ )
50301     {}
50302 
50303     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50304 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50305     DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50306     {
50307       *this = rhs;
50308     }
50309 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50310 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50311     DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50312     {
50313       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>( &rhs );
50314       return *this;
50315     }
50316 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50317     DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50318     {
50319       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneInfo2KHR ) );
50320       return *this;
50321     }
50322 
setPNextVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50323     DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
50324     {
50325       pNext = pNext_;
50326       return *this;
50327     }
50328 
setModeVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50329     DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
50330     {
50331       mode = mode_;
50332       return *this;
50333     }
50334 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50335     DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
50336     {
50337       planeIndex = planeIndex_;
50338       return *this;
50339     }
50340 
50341 
operator VkDisplayPlaneInfo2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50342     operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
50343     {
50344       return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
50345     }
50346 
operator VkDisplayPlaneInfo2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50347     operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
50348     {
50349       return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
50350     }
50351 
50352 
50353 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50354     auto operator<=>( DisplayPlaneInfo2KHR const& ) const = default;
50355 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50356     bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50357     {
50358       return ( sType == rhs.sType )
50359           && ( pNext == rhs.pNext )
50360           && ( mode == rhs.mode )
50361           && ( planeIndex == rhs.planeIndex );
50362     }
50363 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50364     bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50365     {
50366       return !operator==( rhs );
50367     }
50368 #endif
50369 
50370 
50371 
50372   public:
50373     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
50374     const void* pNext = {};
50375     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
50376     uint32_t planeIndex = {};
50377 
50378   };
50379   static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" );
50380   static_assert( std::is_standard_layout<DisplayPlaneInfo2KHR>::value, "struct wrapper is not a standard layout!" );
50381 
50382   template <>
50383   struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
50384   {
50385     using Type = DisplayPlaneInfo2KHR;
50386   };
50387 
50388   struct DisplayPlaneCapabilitiesKHR
50389   {
50390 
50391 
50392 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50393     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
50394     : supportedAlpha( supportedAlpha_ ), minSrcPosition( minSrcPosition_ ), maxSrcPosition( maxSrcPosition_ ), minSrcExtent( minSrcExtent_ ), maxSrcExtent( maxSrcExtent_ ), minDstPosition( minDstPosition_ ), maxDstPosition( maxDstPosition_ ), minDstExtent( minDstExtent_ ), maxDstExtent( maxDstExtent_ )
50395     {}
50396 
50397     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50398 
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50399     DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50400     {
50401       *this = rhs;
50402     }
50403 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50404 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50405     DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50406     {
50407       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>( &rhs );
50408       return *this;
50409     }
50410 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50411     DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50412     {
50413       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneCapabilitiesKHR ) );
50414       return *this;
50415     }
50416 
50417 
operator VkDisplayPlaneCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50418     operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
50419     {
50420       return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
50421     }
50422 
operator VkDisplayPlaneCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50423     operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
50424     {
50425       return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
50426     }
50427 
50428 
50429 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50430     auto operator<=>( DisplayPlaneCapabilitiesKHR const& ) const = default;
50431 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50432     bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50433     {
50434       return ( supportedAlpha == rhs.supportedAlpha )
50435           && ( minSrcPosition == rhs.minSrcPosition )
50436           && ( maxSrcPosition == rhs.maxSrcPosition )
50437           && ( minSrcExtent == rhs.minSrcExtent )
50438           && ( maxSrcExtent == rhs.maxSrcExtent )
50439           && ( minDstPosition == rhs.minDstPosition )
50440           && ( maxDstPosition == rhs.maxDstPosition )
50441           && ( minDstExtent == rhs.minDstExtent )
50442           && ( maxDstExtent == rhs.maxDstExtent );
50443     }
50444 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50445     bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50446     {
50447       return !operator==( rhs );
50448     }
50449 #endif
50450 
50451 
50452 
50453   public:
50454     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
50455     VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
50456     VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
50457     VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
50458     VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
50459     VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
50460     VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
50461     VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
50462     VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
50463 
50464   };
50465   static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" );
50466   static_assert( std::is_standard_layout<DisplayPlaneCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
50467 
50468   struct DisplayPlaneCapabilities2KHR
50469   {
50470     static const bool allowDuplicate = false;
50471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
50472 
50473 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50474     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR(VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {}) VULKAN_HPP_NOEXCEPT
50475     : capabilities( capabilities_ )
50476     {}
50477 
50478     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50479 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50480     DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50481     {
50482       *this = rhs;
50483     }
50484 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50485 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50486     DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50487     {
50488       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>( &rhs );
50489       return *this;
50490     }
50491 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50492     DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50493     {
50494       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneCapabilities2KHR ) );
50495       return *this;
50496     }
50497 
50498 
operator VkDisplayPlaneCapabilities2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50499     operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
50500     {
50501       return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
50502     }
50503 
operator VkDisplayPlaneCapabilities2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50504     operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
50505     {
50506       return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
50507     }
50508 
50509 
50510 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50511     auto operator<=>( DisplayPlaneCapabilities2KHR const& ) const = default;
50512 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50513     bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50514     {
50515       return ( sType == rhs.sType )
50516           && ( pNext == rhs.pNext )
50517           && ( capabilities == rhs.capabilities );
50518     }
50519 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50520     bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50521     {
50522       return !operator==( rhs );
50523     }
50524 #endif
50525 
50526 
50527 
50528   public:
50529     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
50530     void* pNext = {};
50531     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
50532 
50533   };
50534   static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" );
50535   static_assert( std::is_standard_layout<DisplayPlaneCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
50536 
50537   template <>
50538   struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
50539   {
50540     using Type = DisplayPlaneCapabilities2KHR;
50541   };
50542 
50543   struct DisplayPlanePropertiesKHR
50544   {
50545 
50546 
50547 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50548     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, uint32_t currentStackIndex_ = {}) VULKAN_HPP_NOEXCEPT
50549     : currentDisplay( currentDisplay_ ), currentStackIndex( currentStackIndex_ )
50550     {}
50551 
50552     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50553 
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50554     DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50555     {
50556       *this = rhs;
50557     }
50558 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50559 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50560     DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50561     {
50562       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>( &rhs );
50563       return *this;
50564     }
50565 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50566     DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50567     {
50568       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlanePropertiesKHR ) );
50569       return *this;
50570     }
50571 
50572 
operator VkDisplayPlanePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50573     operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50574     {
50575       return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
50576     }
50577 
operator VkDisplayPlanePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50578     operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
50579     {
50580       return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
50581     }
50582 
50583 
50584 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50585     auto operator<=>( DisplayPlanePropertiesKHR const& ) const = default;
50586 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50587     bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50588     {
50589       return ( currentDisplay == rhs.currentDisplay )
50590           && ( currentStackIndex == rhs.currentStackIndex );
50591     }
50592 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50593     bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50594     {
50595       return !operator==( rhs );
50596     }
50597 #endif
50598 
50599 
50600 
50601   public:
50602     VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
50603     uint32_t currentStackIndex = {};
50604 
50605   };
50606   static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" );
50607   static_assert( std::is_standard_layout<DisplayPlanePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50608 
50609   struct DisplayPlaneProperties2KHR
50610   {
50611     static const bool allowDuplicate = false;
50612     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
50613 
50614 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50615     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {}) VULKAN_HPP_NOEXCEPT
50616     : displayPlaneProperties( displayPlaneProperties_ )
50617     {}
50618 
50619     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50620 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50621     DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50622     {
50623       *this = rhs;
50624     }
50625 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50626 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50627     DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50628     {
50629       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>( &rhs );
50630       return *this;
50631     }
50632 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50633     DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50634     {
50635       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneProperties2KHR ) );
50636       return *this;
50637     }
50638 
50639 
operator VkDisplayPlaneProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50640     operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
50641     {
50642       return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
50643     }
50644 
operator VkDisplayPlaneProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50645     operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
50646     {
50647       return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
50648     }
50649 
50650 
50651 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50652     auto operator<=>( DisplayPlaneProperties2KHR const& ) const = default;
50653 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50654     bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50655     {
50656       return ( sType == rhs.sType )
50657           && ( pNext == rhs.pNext )
50658           && ( displayPlaneProperties == rhs.displayPlaneProperties );
50659     }
50660 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50661     bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50662     {
50663       return !operator==( rhs );
50664     }
50665 #endif
50666 
50667 
50668 
50669   public:
50670     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
50671     void* pNext = {};
50672     VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
50673 
50674   };
50675   static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" );
50676   static_assert( std::is_standard_layout<DisplayPlaneProperties2KHR>::value, "struct wrapper is not a standard layout!" );
50677 
50678   template <>
50679   struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
50680   {
50681     using Type = DisplayPlaneProperties2KHR;
50682   };
50683 
50684   struct DisplayPropertiesKHR
50685   {
50686 
50687 
50688 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50689     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
50690     : display( display_ ), displayName( displayName_ ), physicalDimensions( physicalDimensions_ ), physicalResolution( physicalResolution_ ), supportedTransforms( supportedTransforms_ ), planeReorderPossible( planeReorderPossible_ ), persistentContent( persistentContent_ )
50691     {}
50692 
50693     VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50694 
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50695     DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50696     {
50697       *this = rhs;
50698     }
50699 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50700 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50701     DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50702     {
50703       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>( &rhs );
50704       return *this;
50705     }
50706 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50707     DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50708     {
50709       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPropertiesKHR ) );
50710       return *this;
50711     }
50712 
50713 
operator VkDisplayPropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50714     operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50715     {
50716       return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
50717     }
50718 
operator VkDisplayPropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50719     operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
50720     {
50721       return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
50722     }
50723 
50724 
50725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50726     auto operator<=>( DisplayPropertiesKHR const& ) const = default;
50727 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50728     bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50729     {
50730       return ( display == rhs.display )
50731           && ( displayName == rhs.displayName )
50732           && ( physicalDimensions == rhs.physicalDimensions )
50733           && ( physicalResolution == rhs.physicalResolution )
50734           && ( supportedTransforms == rhs.supportedTransforms )
50735           && ( planeReorderPossible == rhs.planeReorderPossible )
50736           && ( persistentContent == rhs.persistentContent );
50737     }
50738 
operator !=VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR50739     bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50740     {
50741       return !operator==( rhs );
50742     }
50743 #endif
50744 
50745 
50746 
50747   public:
50748     VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
50749     const char* displayName = {};
50750     VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
50751     VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
50752     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
50753     VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
50754     VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
50755 
50756   };
50757   static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" );
50758   static_assert( std::is_standard_layout<DisplayPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50759 
50760   struct DisplayProperties2KHR
50761   {
50762     static const bool allowDuplicate = false;
50763     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
50764 
50765 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR50766     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {}) VULKAN_HPP_NOEXCEPT
50767     : displayProperties( displayProperties_ )
50768     {}
50769 
50770     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50771 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR50772     DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50773     {
50774       *this = rhs;
50775     }
50776 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50777 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50778     DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50779     {
50780       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>( &rhs );
50781       return *this;
50782     }
50783 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50784     DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50785     {
50786       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayProperties2KHR ) );
50787       return *this;
50788     }
50789 
50790 
operator VkDisplayProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50791     operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
50792     {
50793       return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
50794     }
50795 
operator VkDisplayProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50796     operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
50797     {
50798       return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
50799     }
50800 
50801 
50802 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50803     auto operator<=>( DisplayProperties2KHR const& ) const = default;
50804 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50805     bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50806     {
50807       return ( sType == rhs.sType )
50808           && ( pNext == rhs.pNext )
50809           && ( displayProperties == rhs.displayProperties );
50810     }
50811 
operator !=VULKAN_HPP_NAMESPACE::DisplayProperties2KHR50812     bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50813     {
50814       return !operator==( rhs );
50815     }
50816 #endif
50817 
50818 
50819 
50820   public:
50821     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
50822     void* pNext = {};
50823     VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
50824 
50825   };
50826   static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" );
50827   static_assert( std::is_standard_layout<DisplayProperties2KHR>::value, "struct wrapper is not a standard layout!" );
50828 
50829   template <>
50830   struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
50831   {
50832     using Type = DisplayProperties2KHR;
50833   };
50834 
50835   struct PhysicalDeviceExternalBufferInfo
50836   {
50837     static const bool allowDuplicate = false;
50838     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
50839 
50840 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50841     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
50842     : flags( flags_ ), usage( usage_ ), handleType( handleType_ )
50843     {}
50844 
50845     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50846 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50847     PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
50848     {
50849       *this = rhs;
50850     }
50851 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50852 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50853     PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
50854     {
50855       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>( &rhs );
50856       return *this;
50857     }
50858 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50859     PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
50860     {
50861       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalBufferInfo ) );
50862       return *this;
50863     }
50864 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50865     PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
50866     {
50867       pNext = pNext_;
50868       return *this;
50869     }
50870 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50871     PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
50872     {
50873       flags = flags_;
50874       return *this;
50875     }
50876 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50877     PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
50878     {
50879       usage = usage_;
50880       return *this;
50881     }
50882 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50883     PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
50884     {
50885       handleType = handleType_;
50886       return *this;
50887     }
50888 
50889 
operator VkPhysicalDeviceExternalBufferInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50890     operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT
50891     {
50892       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
50893     }
50894 
operator VkPhysicalDeviceExternalBufferInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50895     operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
50896     {
50897       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
50898     }
50899 
50900 
50901 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50902     auto operator<=>( PhysicalDeviceExternalBufferInfo const& ) const = default;
50903 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50904     bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
50905     {
50906       return ( sType == rhs.sType )
50907           && ( pNext == rhs.pNext )
50908           && ( flags == rhs.flags )
50909           && ( usage == rhs.usage )
50910           && ( handleType == rhs.handleType );
50911     }
50912 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo50913     bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
50914     {
50915       return !operator==( rhs );
50916     }
50917 #endif
50918 
50919 
50920 
50921   public:
50922     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
50923     const void* pNext = {};
50924     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
50925     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
50926     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
50927 
50928   };
50929   static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" );
50930   static_assert( std::is_standard_layout<PhysicalDeviceExternalBufferInfo>::value, "struct wrapper is not a standard layout!" );
50931 
50932   template <>
50933   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
50934   {
50935     using Type = PhysicalDeviceExternalBufferInfo;
50936   };
50937   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
50938 
50939   struct ExternalMemoryProperties
50940   {
50941 
50942 
50943 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties50944     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT
50945     : externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
50946     {}
50947 
50948     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50949 
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties50950     ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50951     {
50952       *this = rhs;
50953     }
50954 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50955 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties50956     ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50957     {
50958       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>( &rhs );
50959       return *this;
50960     }
50961 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties50962     ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50963     {
50964       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryProperties ) );
50965       return *this;
50966     }
50967 
50968 
operator VkExternalMemoryProperties const&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties50969     operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
50970     {
50971       return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
50972     }
50973 
operator VkExternalMemoryProperties&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties50974     operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
50975     {
50976       return *reinterpret_cast<VkExternalMemoryProperties*>( this );
50977     }
50978 
50979 
50980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50981     auto operator<=>( ExternalMemoryProperties const& ) const = default;
50982 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryProperties50983     bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50984     {
50985       return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
50986           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
50987           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
50988     }
50989 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryProperties50990     bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50991     {
50992       return !operator==( rhs );
50993     }
50994 #endif
50995 
50996 
50997 
50998   public:
50999     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
51000     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
51001     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
51002 
51003   };
51004   static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" );
51005   static_assert( std::is_standard_layout<ExternalMemoryProperties>::value, "struct wrapper is not a standard layout!" );
51006   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
51007 
51008   struct ExternalBufferProperties
51009   {
51010     static const bool allowDuplicate = false;
51011     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
51012 
51013 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties51014     VULKAN_HPP_CONSTEXPR ExternalBufferProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
51015     : externalMemoryProperties( externalMemoryProperties_ )
51016     {}
51017 
51018     VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51019 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties51020     ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51021     {
51022       *this = rhs;
51023     }
51024 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51025 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties51026     ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51027     {
51028       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>( &rhs );
51029       return *this;
51030     }
51031 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties51032     ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51033     {
51034       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalBufferProperties ) );
51035       return *this;
51036     }
51037 
51038 
operator VkExternalBufferProperties const&VULKAN_HPP_NAMESPACE::ExternalBufferProperties51039     operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT
51040     {
51041       return *reinterpret_cast<const VkExternalBufferProperties*>( this );
51042     }
51043 
operator VkExternalBufferProperties&VULKAN_HPP_NAMESPACE::ExternalBufferProperties51044     operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
51045     {
51046       return *reinterpret_cast<VkExternalBufferProperties*>( this );
51047     }
51048 
51049 
51050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51051     auto operator<=>( ExternalBufferProperties const& ) const = default;
51052 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalBufferProperties51053     bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51054     {
51055       return ( sType == rhs.sType )
51056           && ( pNext == rhs.pNext )
51057           && ( externalMemoryProperties == rhs.externalMemoryProperties );
51058     }
51059 
operator !=VULKAN_HPP_NAMESPACE::ExternalBufferProperties51060     bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51061     {
51062       return !operator==( rhs );
51063     }
51064 #endif
51065 
51066 
51067 
51068   public:
51069     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
51070     void* pNext = {};
51071     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
51072 
51073   };
51074   static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" );
51075   static_assert( std::is_standard_layout<ExternalBufferProperties>::value, "struct wrapper is not a standard layout!" );
51076 
51077   template <>
51078   struct CppType<StructureType, StructureType::eExternalBufferProperties>
51079   {
51080     using Type = ExternalBufferProperties;
51081   };
51082   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
51083 
51084   struct PhysicalDeviceExternalFenceInfo
51085   {
51086     static const bool allowDuplicate = false;
51087     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
51088 
51089 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51090     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
51091     : handleType( handleType_ )
51092     {}
51093 
51094     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51095 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51096     PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51097     {
51098       *this = rhs;
51099     }
51100 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51101 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51102     PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51103     {
51104       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>( &rhs );
51105       return *this;
51106     }
51107 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51108     PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51109     {
51110       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalFenceInfo ) );
51111       return *this;
51112     }
51113 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51114     PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51115     {
51116       pNext = pNext_;
51117       return *this;
51118     }
51119 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51120     PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51121     {
51122       handleType = handleType_;
51123       return *this;
51124     }
51125 
51126 
operator VkPhysicalDeviceExternalFenceInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51127     operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT
51128     {
51129       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
51130     }
51131 
operator VkPhysicalDeviceExternalFenceInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51132     operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
51133     {
51134       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
51135     }
51136 
51137 
51138 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51139     auto operator<=>( PhysicalDeviceExternalFenceInfo const& ) const = default;
51140 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51141     bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51142     {
51143       return ( sType == rhs.sType )
51144           && ( pNext == rhs.pNext )
51145           && ( handleType == rhs.handleType );
51146     }
51147 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51148     bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51149     {
51150       return !operator==( rhs );
51151     }
51152 #endif
51153 
51154 
51155 
51156   public:
51157     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
51158     const void* pNext = {};
51159     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
51160 
51161   };
51162   static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" );
51163   static_assert( std::is_standard_layout<PhysicalDeviceExternalFenceInfo>::value, "struct wrapper is not a standard layout!" );
51164 
51165   template <>
51166   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
51167   {
51168     using Type = PhysicalDeviceExternalFenceInfo;
51169   };
51170   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
51171 
51172   struct ExternalFenceProperties
51173   {
51174     static const bool allowDuplicate = false;
51175     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
51176 
51177 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties51178     VULKAN_HPP_CONSTEXPR ExternalFenceProperties(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51179     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalFenceFeatures( externalFenceFeatures_ )
51180     {}
51181 
51182     VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51183 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties51184     ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51185     {
51186       *this = rhs;
51187     }
51188 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51189 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties51190     ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51191     {
51192       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>( &rhs );
51193       return *this;
51194     }
51195 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties51196     ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51197     {
51198       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalFenceProperties ) );
51199       return *this;
51200     }
51201 
51202 
operator VkExternalFenceProperties const&VULKAN_HPP_NAMESPACE::ExternalFenceProperties51203     operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT
51204     {
51205       return *reinterpret_cast<const VkExternalFenceProperties*>( this );
51206     }
51207 
operator VkExternalFenceProperties&VULKAN_HPP_NAMESPACE::ExternalFenceProperties51208     operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
51209     {
51210       return *reinterpret_cast<VkExternalFenceProperties*>( this );
51211     }
51212 
51213 
51214 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51215     auto operator<=>( ExternalFenceProperties const& ) const = default;
51216 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFenceProperties51217     bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51218     {
51219       return ( sType == rhs.sType )
51220           && ( pNext == rhs.pNext )
51221           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51222           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
51223           && ( externalFenceFeatures == rhs.externalFenceFeatures );
51224     }
51225 
operator !=VULKAN_HPP_NAMESPACE::ExternalFenceProperties51226     bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51227     {
51228       return !operator==( rhs );
51229     }
51230 #endif
51231 
51232 
51233 
51234   public:
51235     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
51236     void* pNext = {};
51237     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
51238     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
51239     VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
51240 
51241   };
51242   static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" );
51243   static_assert( std::is_standard_layout<ExternalFenceProperties>::value, "struct wrapper is not a standard layout!" );
51244 
51245   template <>
51246   struct CppType<StructureType, StructureType::eExternalFenceProperties>
51247   {
51248     using Type = ExternalFenceProperties;
51249   };
51250   using ExternalFencePropertiesKHR = ExternalFenceProperties;
51251 
51252   struct ImageFormatProperties
51253   {
51254 
51255 
51256 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties51257     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
51258     : maxExtent( maxExtent_ ), maxMipLevels( maxMipLevels_ ), maxArrayLayers( maxArrayLayers_ ), sampleCounts( sampleCounts_ ), maxResourceSize( maxResourceSize_ )
51259     {}
51260 
51261     VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51262 
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties51263     ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51264     {
51265       *this = rhs;
51266     }
51267 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51268 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties51269     ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51270     {
51271       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>( &rhs );
51272       return *this;
51273     }
51274 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties51275     ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51276     {
51277       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatProperties ) );
51278       return *this;
51279     }
51280 
51281 
operator VkImageFormatProperties const&VULKAN_HPP_NAMESPACE::ImageFormatProperties51282     operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
51283     {
51284       return *reinterpret_cast<const VkImageFormatProperties*>( this );
51285     }
51286 
operator VkImageFormatProperties&VULKAN_HPP_NAMESPACE::ImageFormatProperties51287     operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
51288     {
51289       return *reinterpret_cast<VkImageFormatProperties*>( this );
51290     }
51291 
51292 
51293 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51294     auto operator<=>( ImageFormatProperties const& ) const = default;
51295 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties51296     bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51297     {
51298       return ( maxExtent == rhs.maxExtent )
51299           && ( maxMipLevels == rhs.maxMipLevels )
51300           && ( maxArrayLayers == rhs.maxArrayLayers )
51301           && ( sampleCounts == rhs.sampleCounts )
51302           && ( maxResourceSize == rhs.maxResourceSize );
51303     }
51304 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties51305     bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51306     {
51307       return !operator==( rhs );
51308     }
51309 #endif
51310 
51311 
51312 
51313   public:
51314     VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
51315     uint32_t maxMipLevels = {};
51316     uint32_t maxArrayLayers = {};
51317     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
51318     VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
51319 
51320   };
51321   static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" );
51322   static_assert( std::is_standard_layout<ImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
51323 
51324   struct ExternalImageFormatPropertiesNV
51325   {
51326 
51327 
51328 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51329     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
51330     : imageFormatProperties( imageFormatProperties_ ), externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
51331     {}
51332 
51333     VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51334 
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51335     ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51336     {
51337       *this = rhs;
51338     }
51339 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51340 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51341     ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51342     {
51343       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>( &rhs );
51344       return *this;
51345     }
51346 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51347     ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51348     {
51349       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalImageFormatPropertiesNV ) );
51350       return *this;
51351     }
51352 
51353 
operator VkExternalImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51354     operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
51355     {
51356       return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
51357     }
51358 
operator VkExternalImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51359     operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
51360     {
51361       return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
51362     }
51363 
51364 
51365 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51366     auto operator<=>( ExternalImageFormatPropertiesNV const& ) const = default;
51367 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51368     bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51369     {
51370       return ( imageFormatProperties == rhs.imageFormatProperties )
51371           && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
51372           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51373           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
51374     }
51375 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51376     bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51377     {
51378       return !operator==( rhs );
51379     }
51380 #endif
51381 
51382 
51383 
51384   public:
51385     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
51386     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
51387     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
51388     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
51389 
51390   };
51391   static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" );
51392   static_assert( std::is_standard_layout<ExternalImageFormatPropertiesNV>::value, "struct wrapper is not a standard layout!" );
51393 
51394   struct PhysicalDeviceExternalSemaphoreInfo
51395   {
51396     static const bool allowDuplicate = false;
51397     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
51398 
51399 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51400     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
51401     : handleType( handleType_ )
51402     {}
51403 
51404     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51405 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51406     PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51407     {
51408       *this = rhs;
51409     }
51410 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51411 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51412     PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51413     {
51414       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>( &rhs );
51415       return *this;
51416     }
51417 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51418     PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51419     {
51420       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalSemaphoreInfo ) );
51421       return *this;
51422     }
51423 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51424     PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51425     {
51426       pNext = pNext_;
51427       return *this;
51428     }
51429 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51430     PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51431     {
51432       handleType = handleType_;
51433       return *this;
51434     }
51435 
51436 
operator VkPhysicalDeviceExternalSemaphoreInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51437     operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT
51438     {
51439       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
51440     }
51441 
operator VkPhysicalDeviceExternalSemaphoreInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51442     operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
51443     {
51444       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
51445     }
51446 
51447 
51448 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51449     auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const& ) const = default;
51450 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51451     bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51452     {
51453       return ( sType == rhs.sType )
51454           && ( pNext == rhs.pNext )
51455           && ( handleType == rhs.handleType );
51456     }
51457 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51458     bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51459     {
51460       return !operator==( rhs );
51461     }
51462 #endif
51463 
51464 
51465 
51466   public:
51467     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
51468     const void* pNext = {};
51469     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
51470 
51471   };
51472   static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" );
51473   static_assert( std::is_standard_layout<PhysicalDeviceExternalSemaphoreInfo>::value, "struct wrapper is not a standard layout!" );
51474 
51475   template <>
51476   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
51477   {
51478     using Type = PhysicalDeviceExternalSemaphoreInfo;
51479   };
51480   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
51481 
51482   struct ExternalSemaphoreProperties
51483   {
51484     static const bool allowDuplicate = false;
51485     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
51486 
51487 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51488     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51489     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalSemaphoreFeatures( externalSemaphoreFeatures_ )
51490     {}
51491 
51492     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51493 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51494     ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51495     {
51496       *this = rhs;
51497     }
51498 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51499 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51500     ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51501     {
51502       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>( &rhs );
51503       return *this;
51504     }
51505 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51506     ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51507     {
51508       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalSemaphoreProperties ) );
51509       return *this;
51510     }
51511 
51512 
operator VkExternalSemaphoreProperties const&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51513     operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
51514     {
51515       return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
51516     }
51517 
operator VkExternalSemaphoreProperties&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51518     operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
51519     {
51520       return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
51521     }
51522 
51523 
51524 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51525     auto operator<=>( ExternalSemaphoreProperties const& ) const = default;
51526 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51527     bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51528     {
51529       return ( sType == rhs.sType )
51530           && ( pNext == rhs.pNext )
51531           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51532           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
51533           && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
51534     }
51535 
operator !=VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51536     bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51537     {
51538       return !operator==( rhs );
51539     }
51540 #endif
51541 
51542 
51543 
51544   public:
51545     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
51546     void* pNext = {};
51547     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
51548     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
51549     VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
51550 
51551   };
51552   static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" );
51553   static_assert( std::is_standard_layout<ExternalSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
51554 
51555   template <>
51556   struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
51557   {
51558     using Type = ExternalSemaphoreProperties;
51559   };
51560   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
51561 
51562   struct PhysicalDeviceFeatures2
51563   {
51564     static const bool allowDuplicate = false;
51565     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
51566 
51567 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251568     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}) VULKAN_HPP_NOEXCEPT
51569     : features( features_ )
51570     {}
51571 
51572     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51573 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251574     PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51575     {
51576       *this = rhs;
51577     }
51578 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51579 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251580     PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51581     {
51582       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>( &rhs );
51583       return *this;
51584     }
51585 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251586     PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51587     {
51588       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFeatures2 ) );
51589       return *this;
51590     }
51591 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251592     PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51593     {
51594       pNext = pNext_;
51595       return *this;
51596     }
51597 
setFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251598     PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
51599     {
51600       features = features_;
51601       return *this;
51602     }
51603 
51604 
operator VkPhysicalDeviceFeatures2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251605     operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT
51606     {
51607       return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
51608     }
51609 
operator VkPhysicalDeviceFeatures2&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251610     operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
51611     {
51612       return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
51613     }
51614 
51615 
51616 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51617     auto operator<=>( PhysicalDeviceFeatures2 const& ) const = default;
51618 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251619     bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51620     {
51621       return ( sType == rhs.sType )
51622           && ( pNext == rhs.pNext )
51623           && ( features == rhs.features );
51624     }
51625 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251626     bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51627     {
51628       return !operator==( rhs );
51629     }
51630 #endif
51631 
51632 
51633 
51634   public:
51635     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
51636     void* pNext = {};
51637     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
51638 
51639   };
51640   static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" );
51641   static_assert( std::is_standard_layout<PhysicalDeviceFeatures2>::value, "struct wrapper is not a standard layout!" );
51642 
51643   template <>
51644   struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
51645   {
51646     using Type = PhysicalDeviceFeatures2;
51647   };
51648   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
51649 
51650   struct FormatProperties
51651   {
51652 
51653 
51654 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties51655     VULKAN_HPP_CONSTEXPR FormatProperties(VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51656     : linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ )
51657     {}
51658 
51659     VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51660 
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties51661     FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51662     {
51663       *this = rhs;
51664     }
51665 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51666 
operator =VULKAN_HPP_NAMESPACE::FormatProperties51667     FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51668     {
51669       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>( &rhs );
51670       return *this;
51671     }
51672 
operator =VULKAN_HPP_NAMESPACE::FormatProperties51673     FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51674     {
51675       memcpy( static_cast<void *>( this ), &rhs, sizeof( FormatProperties ) );
51676       return *this;
51677     }
51678 
51679 
operator VkFormatProperties const&VULKAN_HPP_NAMESPACE::FormatProperties51680     operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT
51681     {
51682       return *reinterpret_cast<const VkFormatProperties*>( this );
51683     }
51684 
operator VkFormatProperties&VULKAN_HPP_NAMESPACE::FormatProperties51685     operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
51686     {
51687       return *reinterpret_cast<VkFormatProperties*>( this );
51688     }
51689 
51690 
51691 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51692     auto operator<=>( FormatProperties const& ) const = default;
51693 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties51694     bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51695     {
51696       return ( linearTilingFeatures == rhs.linearTilingFeatures )
51697           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
51698           && ( bufferFeatures == rhs.bufferFeatures );
51699     }
51700 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties51701     bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51702     {
51703       return !operator==( rhs );
51704     }
51705 #endif
51706 
51707 
51708 
51709   public:
51710     VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
51711     VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
51712     VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
51713 
51714   };
51715   static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" );
51716   static_assert( std::is_standard_layout<FormatProperties>::value, "struct wrapper is not a standard layout!" );
51717 
51718   struct FormatProperties2
51719   {
51720     static const bool allowDuplicate = false;
51721     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
51722 
51723 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties251724     VULKAN_HPP_CONSTEXPR FormatProperties2(VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}) VULKAN_HPP_NOEXCEPT
51725     : formatProperties( formatProperties_ )
51726     {}
51727 
51728     VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51729 
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties251730     FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51731     {
51732       *this = rhs;
51733     }
51734 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51735 
operator =VULKAN_HPP_NAMESPACE::FormatProperties251736     FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51737     {
51738       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>( &rhs );
51739       return *this;
51740     }
51741 
operator =VULKAN_HPP_NAMESPACE::FormatProperties251742     FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51743     {
51744       memcpy( static_cast<void *>( this ), &rhs, sizeof( FormatProperties2 ) );
51745       return *this;
51746     }
51747 
51748 
operator VkFormatProperties2 const&VULKAN_HPP_NAMESPACE::FormatProperties251749     operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
51750     {
51751       return *reinterpret_cast<const VkFormatProperties2*>( this );
51752     }
51753 
operator VkFormatProperties2&VULKAN_HPP_NAMESPACE::FormatProperties251754     operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
51755     {
51756       return *reinterpret_cast<VkFormatProperties2*>( this );
51757     }
51758 
51759 
51760 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51761     auto operator<=>( FormatProperties2 const& ) const = default;
51762 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties251763     bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51764     {
51765       return ( sType == rhs.sType )
51766           && ( pNext == rhs.pNext )
51767           && ( formatProperties == rhs.formatProperties );
51768     }
51769 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties251770     bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51771     {
51772       return !operator==( rhs );
51773     }
51774 #endif
51775 
51776 
51777 
51778   public:
51779     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
51780     void* pNext = {};
51781     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
51782 
51783   };
51784   static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" );
51785   static_assert( std::is_standard_layout<FormatProperties2>::value, "struct wrapper is not a standard layout!" );
51786 
51787   template <>
51788   struct CppType<StructureType, StructureType::eFormatProperties2>
51789   {
51790     using Type = FormatProperties2;
51791   };
51792   using FormatProperties2KHR = FormatProperties2;
51793 
51794   struct PhysicalDeviceImageFormatInfo2
51795   {
51796     static const bool allowDuplicate = false;
51797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
51798 
51799 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251800     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
51801     : format( format_ ), type( type_ ), tiling( tiling_ ), usage( usage_ ), flags( flags_ )
51802     {}
51803 
51804     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51805 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251806     PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
51807     {
51808       *this = rhs;
51809     }
51810 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51811 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251812     PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
51813     {
51814       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>( &rhs );
51815       return *this;
51816     }
51817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251818     PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
51819     {
51820       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageFormatInfo2 ) );
51821       return *this;
51822     }
51823 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251824     PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51825     {
51826       pNext = pNext_;
51827       return *this;
51828     }
51829 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251830     PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
51831     {
51832       format = format_;
51833       return *this;
51834     }
51835 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251836     PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
51837     {
51838       type = type_;
51839       return *this;
51840     }
51841 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251842     PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
51843     {
51844       tiling = tiling_;
51845       return *this;
51846     }
51847 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251848     PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
51849     {
51850       usage = usage_;
51851       return *this;
51852     }
51853 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251854     PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
51855     {
51856       flags = flags_;
51857       return *this;
51858     }
51859 
51860 
operator VkPhysicalDeviceImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251861     operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
51862     {
51863       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
51864     }
51865 
operator VkPhysicalDeviceImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251866     operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
51867     {
51868       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
51869     }
51870 
51871 
51872 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51873     auto operator<=>( PhysicalDeviceImageFormatInfo2 const& ) const = default;
51874 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251875     bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51876     {
51877       return ( sType == rhs.sType )
51878           && ( pNext == rhs.pNext )
51879           && ( format == rhs.format )
51880           && ( type == rhs.type )
51881           && ( tiling == rhs.tiling )
51882           && ( usage == rhs.usage )
51883           && ( flags == rhs.flags );
51884     }
51885 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo251886     bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51887     {
51888       return !operator==( rhs );
51889     }
51890 #endif
51891 
51892 
51893 
51894   public:
51895     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
51896     const void* pNext = {};
51897     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
51898     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
51899     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
51900     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
51901     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
51902 
51903   };
51904   static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" );
51905   static_assert( std::is_standard_layout<PhysicalDeviceImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
51906 
51907   template <>
51908   struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
51909   {
51910     using Type = PhysicalDeviceImageFormatInfo2;
51911   };
51912   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
51913 
51914   struct ImageFormatProperties2
51915   {
51916     static const bool allowDuplicate = false;
51917     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
51918 
51919 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties251920     VULKAN_HPP_CONSTEXPR ImageFormatProperties2(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}) VULKAN_HPP_NOEXCEPT
51921     : imageFormatProperties( imageFormatProperties_ )
51922     {}
51923 
51924     VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51925 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties251926     ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51927     {
51928       *this = rhs;
51929     }
51930 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51931 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties251932     ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51933     {
51934       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>( &rhs );
51935       return *this;
51936     }
51937 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties251938     ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
51939     {
51940       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatProperties2 ) );
51941       return *this;
51942     }
51943 
51944 
operator VkImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::ImageFormatProperties251945     operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
51946     {
51947       return *reinterpret_cast<const VkImageFormatProperties2*>( this );
51948     }
51949 
operator VkImageFormatProperties2&VULKAN_HPP_NAMESPACE::ImageFormatProperties251950     operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
51951     {
51952       return *reinterpret_cast<VkImageFormatProperties2*>( this );
51953     }
51954 
51955 
51956 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51957     auto operator<=>( ImageFormatProperties2 const& ) const = default;
51958 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties251959     bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51960     {
51961       return ( sType == rhs.sType )
51962           && ( pNext == rhs.pNext )
51963           && ( imageFormatProperties == rhs.imageFormatProperties );
51964     }
51965 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties251966     bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51967     {
51968       return !operator==( rhs );
51969     }
51970 #endif
51971 
51972 
51973 
51974   public:
51975     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
51976     void* pNext = {};
51977     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
51978 
51979   };
51980   static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" );
51981   static_assert( std::is_standard_layout<ImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
51982 
51983   template <>
51984   struct CppType<StructureType, StructureType::eImageFormatProperties2>
51985   {
51986     using Type = ImageFormatProperties2;
51987   };
51988   using ImageFormatProperties2KHR = ImageFormatProperties2;
51989 
51990   struct MemoryType
51991   {
51992 
51993 
51994 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType51995     VULKAN_HPP_CONSTEXPR MemoryType(VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT
51996     : propertyFlags( propertyFlags_ ), heapIndex( heapIndex_ )
51997     {}
51998 
51999     VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52000 
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType52001     MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52002     {
52003       *this = rhs;
52004     }
52005 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52006 
operator =VULKAN_HPP_NAMESPACE::MemoryType52007     MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52008     {
52009       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>( &rhs );
52010       return *this;
52011     }
52012 
operator =VULKAN_HPP_NAMESPACE::MemoryType52013     MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52014     {
52015       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryType ) );
52016       return *this;
52017     }
52018 
52019 
operator VkMemoryType const&VULKAN_HPP_NAMESPACE::MemoryType52020     operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT
52021     {
52022       return *reinterpret_cast<const VkMemoryType*>( this );
52023     }
52024 
operator VkMemoryType&VULKAN_HPP_NAMESPACE::MemoryType52025     operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
52026     {
52027       return *reinterpret_cast<VkMemoryType*>( this );
52028     }
52029 
52030 
52031 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52032     auto operator<=>( MemoryType const& ) const = default;
52033 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryType52034     bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
52035     {
52036       return ( propertyFlags == rhs.propertyFlags )
52037           && ( heapIndex == rhs.heapIndex );
52038     }
52039 
operator !=VULKAN_HPP_NAMESPACE::MemoryType52040     bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
52041     {
52042       return !operator==( rhs );
52043     }
52044 #endif
52045 
52046 
52047 
52048   public:
52049     VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
52050     uint32_t heapIndex = {};
52051 
52052   };
52053   static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" );
52054   static_assert( std::is_standard_layout<MemoryType>::value, "struct wrapper is not a standard layout!" );
52055 
52056   struct MemoryHeap
52057   {
52058 
52059 
52060 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap52061     VULKAN_HPP_CONSTEXPR MemoryHeap(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
52062     : size( size_ ), flags( flags_ )
52063     {}
52064 
52065     VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52066 
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap52067     MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52068     {
52069       *this = rhs;
52070     }
52071 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52072 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap52073     MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52074     {
52075       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>( &rhs );
52076       return *this;
52077     }
52078 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap52079     MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52080     {
52081       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryHeap ) );
52082       return *this;
52083     }
52084 
52085 
operator VkMemoryHeap const&VULKAN_HPP_NAMESPACE::MemoryHeap52086     operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT
52087     {
52088       return *reinterpret_cast<const VkMemoryHeap*>( this );
52089     }
52090 
operator VkMemoryHeap&VULKAN_HPP_NAMESPACE::MemoryHeap52091     operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
52092     {
52093       return *reinterpret_cast<VkMemoryHeap*>( this );
52094     }
52095 
52096 
52097 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52098     auto operator<=>( MemoryHeap const& ) const = default;
52099 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHeap52100     bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
52101     {
52102       return ( size == rhs.size )
52103           && ( flags == rhs.flags );
52104     }
52105 
operator !=VULKAN_HPP_NAMESPACE::MemoryHeap52106     bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
52107     {
52108       return !operator==( rhs );
52109     }
52110 #endif
52111 
52112 
52113 
52114   public:
52115     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
52116     VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
52117 
52118   };
52119   static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" );
52120   static_assert( std::is_standard_layout<MemoryHeap>::value, "struct wrapper is not a standard layout!" );
52121 
52122   struct PhysicalDeviceMemoryProperties
52123   {
52124 
52125 
52126 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52127     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
52128     : memoryTypeCount( memoryTypeCount_ ), memoryTypes( memoryTypes_ ), memoryHeapCount( memoryHeapCount_ ), memoryHeaps( memoryHeaps_ )
52129     {}
52130 
52131     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52132 
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52133     PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52134     {
52135       *this = rhs;
52136     }
52137 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52138 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52139     PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52140     {
52141       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>( &rhs );
52142       return *this;
52143     }
52144 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52145     PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52146     {
52147       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties ) );
52148       return *this;
52149     }
52150 
52151 
operator VkPhysicalDeviceMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52152     operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
52153     {
52154       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
52155     }
52156 
operator VkPhysicalDeviceMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52157     operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
52158     {
52159       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
52160     }
52161 
52162 
52163 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52164     auto operator<=>( PhysicalDeviceMemoryProperties const& ) const = default;
52165 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52166     bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52167     {
52168       return ( memoryTypeCount == rhs.memoryTypeCount )
52169           && ( memoryTypes == rhs.memoryTypes )
52170           && ( memoryHeapCount == rhs.memoryHeapCount )
52171           && ( memoryHeaps == rhs.memoryHeaps );
52172     }
52173 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52174     bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52175     {
52176       return !operator==( rhs );
52177     }
52178 #endif
52179 
52180 
52181 
52182   public:
52183     uint32_t memoryTypeCount = {};
52184     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
52185     uint32_t memoryHeapCount = {};
52186     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
52187 
52188   };
52189   static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" );
52190   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties>::value, "struct wrapper is not a standard layout!" );
52191 
52192   struct PhysicalDeviceMemoryProperties2
52193   {
52194     static const bool allowDuplicate = false;
52195     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
52196 
52197 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252198     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
52199     : memoryProperties( memoryProperties_ )
52200     {}
52201 
52202     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52203 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252204     PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52205     {
52206       *this = rhs;
52207     }
52208 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52209 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252210     PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52211     {
52212       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>( &rhs );
52213       return *this;
52214     }
52215 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252216     PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52217     {
52218       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties2 ) );
52219       return *this;
52220     }
52221 
52222 
operator VkPhysicalDeviceMemoryProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252223     operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT
52224     {
52225       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
52226     }
52227 
operator VkPhysicalDeviceMemoryProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252228     operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
52229     {
52230       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
52231     }
52232 
52233 
52234 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52235     auto operator<=>( PhysicalDeviceMemoryProperties2 const& ) const = default;
52236 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252237     bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52238     {
52239       return ( sType == rhs.sType )
52240           && ( pNext == rhs.pNext )
52241           && ( memoryProperties == rhs.memoryProperties );
52242     }
52243 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252244     bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52245     {
52246       return !operator==( rhs );
52247     }
52248 #endif
52249 
52250 
52251 
52252   public:
52253     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
52254     void* pNext = {};
52255     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
52256 
52257   };
52258   static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" );
52259   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties2>::value, "struct wrapper is not a standard layout!" );
52260 
52261   template <>
52262   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
52263   {
52264     using Type = PhysicalDeviceMemoryProperties2;
52265   };
52266   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
52267 
52268   struct MultisamplePropertiesEXT
52269   {
52270     static const bool allowDuplicate = false;
52271     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
52272 
52273 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52274     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}) VULKAN_HPP_NOEXCEPT
52275     : maxSampleLocationGridSize( maxSampleLocationGridSize_ )
52276     {}
52277 
52278     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52279 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52280     MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52281     {
52282       *this = rhs;
52283     }
52284 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52285 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52286     MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52287     {
52288       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>( &rhs );
52289       return *this;
52290     }
52291 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52292     MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52293     {
52294       memcpy( static_cast<void *>( this ), &rhs, sizeof( MultisamplePropertiesEXT ) );
52295       return *this;
52296     }
52297 
52298 
operator VkMultisamplePropertiesEXT const&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52299     operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
52300     {
52301       return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
52302     }
52303 
operator VkMultisamplePropertiesEXT&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52304     operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
52305     {
52306       return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
52307     }
52308 
52309 
52310 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52311     auto operator<=>( MultisamplePropertiesEXT const& ) const = default;
52312 #else
operator ==VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52313     bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52314     {
52315       return ( sType == rhs.sType )
52316           && ( pNext == rhs.pNext )
52317           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
52318     }
52319 
operator !=VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52320     bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52321     {
52322       return !operator==( rhs );
52323     }
52324 #endif
52325 
52326 
52327 
52328   public:
52329     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
52330     void* pNext = {};
52331     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
52332 
52333   };
52334   static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" );
52335   static_assert( std::is_standard_layout<MultisamplePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
52336 
52337   template <>
52338   struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
52339   {
52340     using Type = MultisamplePropertiesEXT;
52341   };
52342 
52343   struct PhysicalDeviceLimits
52344   {
52345 
52346 
52347 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52348     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
52349     : 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_ )
52350     {}
52351 
52352     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52353 
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52354     PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52355     {
52356       *this = rhs;
52357     }
52358 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52359 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52360     PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52361     {
52362       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>( &rhs );
52363       return *this;
52364     }
52365 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52366     PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52367     {
52368       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLimits ) );
52369       return *this;
52370     }
52371 
52372 
operator VkPhysicalDeviceLimits const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52373     operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT
52374     {
52375       return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
52376     }
52377 
operator VkPhysicalDeviceLimits&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52378     operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
52379     {
52380       return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
52381     }
52382 
52383 
52384 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52385     auto operator<=>( PhysicalDeviceLimits const& ) const = default;
52386 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52387     bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
52388     {
52389       return ( maxImageDimension1D == rhs.maxImageDimension1D )
52390           && ( maxImageDimension2D == rhs.maxImageDimension2D )
52391           && ( maxImageDimension3D == rhs.maxImageDimension3D )
52392           && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
52393           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
52394           && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
52395           && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
52396           && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
52397           && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
52398           && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
52399           && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
52400           && ( bufferImageGranularity == rhs.bufferImageGranularity )
52401           && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
52402           && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
52403           && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
52404           && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
52405           && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
52406           && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
52407           && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
52408           && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
52409           && ( maxPerStageResources == rhs.maxPerStageResources )
52410           && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
52411           && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
52412           && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
52413           && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
52414           && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
52415           && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
52416           && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
52417           && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
52418           && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
52419           && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
52420           && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
52421           && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
52422           && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
52423           && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
52424           && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
52425           && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
52426           && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
52427           && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
52428           && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
52429           && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
52430           && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
52431           && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
52432           && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
52433           && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
52434           && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
52435           && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
52436           && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
52437           && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
52438           && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
52439           && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
52440           && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
52441           && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount )
52442           && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
52443           && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize )
52444           && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
52445           && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
52446           && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
52447           && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
52448           && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
52449           && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
52450           && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
52451           && ( maxViewports == rhs.maxViewports )
52452           && ( maxViewportDimensions == rhs.maxViewportDimensions )
52453           && ( viewportBoundsRange == rhs.viewportBoundsRange )
52454           && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
52455           && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
52456           && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
52457           && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
52458           && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
52459           && ( minTexelOffset == rhs.minTexelOffset )
52460           && ( maxTexelOffset == rhs.maxTexelOffset )
52461           && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
52462           && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
52463           && ( minInterpolationOffset == rhs.minInterpolationOffset )
52464           && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
52465           && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
52466           && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
52467           && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
52468           && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
52469           && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
52470           && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
52471           && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
52472           && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
52473           && ( maxColorAttachments == rhs.maxColorAttachments )
52474           && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
52475           && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
52476           && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
52477           && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
52478           && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
52479           && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
52480           && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
52481           && ( timestampPeriod == rhs.timestampPeriod )
52482           && ( maxClipDistances == rhs.maxClipDistances )
52483           && ( maxCullDistances == rhs.maxCullDistances )
52484           && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
52485           && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
52486           && ( pointSizeRange == rhs.pointSizeRange )
52487           && ( lineWidthRange == rhs.lineWidthRange )
52488           && ( pointSizeGranularity == rhs.pointSizeGranularity )
52489           && ( lineWidthGranularity == rhs.lineWidthGranularity )
52490           && ( strictLines == rhs.strictLines )
52491           && ( standardSampleLocations == rhs.standardSampleLocations )
52492           && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
52493           && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
52494           && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
52495     }
52496 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52497     bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
52498     {
52499       return !operator==( rhs );
52500     }
52501 #endif
52502 
52503 
52504 
52505   public:
52506     uint32_t maxImageDimension1D = {};
52507     uint32_t maxImageDimension2D = {};
52508     uint32_t maxImageDimension3D = {};
52509     uint32_t maxImageDimensionCube = {};
52510     uint32_t maxImageArrayLayers = {};
52511     uint32_t maxTexelBufferElements = {};
52512     uint32_t maxUniformBufferRange = {};
52513     uint32_t maxStorageBufferRange = {};
52514     uint32_t maxPushConstantsSize = {};
52515     uint32_t maxMemoryAllocationCount = {};
52516     uint32_t maxSamplerAllocationCount = {};
52517     VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
52518     VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
52519     uint32_t maxBoundDescriptorSets = {};
52520     uint32_t maxPerStageDescriptorSamplers = {};
52521     uint32_t maxPerStageDescriptorUniformBuffers = {};
52522     uint32_t maxPerStageDescriptorStorageBuffers = {};
52523     uint32_t maxPerStageDescriptorSampledImages = {};
52524     uint32_t maxPerStageDescriptorStorageImages = {};
52525     uint32_t maxPerStageDescriptorInputAttachments = {};
52526     uint32_t maxPerStageResources = {};
52527     uint32_t maxDescriptorSetSamplers = {};
52528     uint32_t maxDescriptorSetUniformBuffers = {};
52529     uint32_t maxDescriptorSetUniformBuffersDynamic = {};
52530     uint32_t maxDescriptorSetStorageBuffers = {};
52531     uint32_t maxDescriptorSetStorageBuffersDynamic = {};
52532     uint32_t maxDescriptorSetSampledImages = {};
52533     uint32_t maxDescriptorSetStorageImages = {};
52534     uint32_t maxDescriptorSetInputAttachments = {};
52535     uint32_t maxVertexInputAttributes = {};
52536     uint32_t maxVertexInputBindings = {};
52537     uint32_t maxVertexInputAttributeOffset = {};
52538     uint32_t maxVertexInputBindingStride = {};
52539     uint32_t maxVertexOutputComponents = {};
52540     uint32_t maxTessellationGenerationLevel = {};
52541     uint32_t maxTessellationPatchSize = {};
52542     uint32_t maxTessellationControlPerVertexInputComponents = {};
52543     uint32_t maxTessellationControlPerVertexOutputComponents = {};
52544     uint32_t maxTessellationControlPerPatchOutputComponents = {};
52545     uint32_t maxTessellationControlTotalOutputComponents = {};
52546     uint32_t maxTessellationEvaluationInputComponents = {};
52547     uint32_t maxTessellationEvaluationOutputComponents = {};
52548     uint32_t maxGeometryShaderInvocations = {};
52549     uint32_t maxGeometryInputComponents = {};
52550     uint32_t maxGeometryOutputComponents = {};
52551     uint32_t maxGeometryOutputVertices = {};
52552     uint32_t maxGeometryTotalOutputComponents = {};
52553     uint32_t maxFragmentInputComponents = {};
52554     uint32_t maxFragmentOutputAttachments = {};
52555     uint32_t maxFragmentDualSrcAttachments = {};
52556     uint32_t maxFragmentCombinedOutputResources = {};
52557     uint32_t maxComputeSharedMemorySize = {};
52558     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
52559     uint32_t maxComputeWorkGroupInvocations = {};
52560     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
52561     uint32_t subPixelPrecisionBits = {};
52562     uint32_t subTexelPrecisionBits = {};
52563     uint32_t mipmapPrecisionBits = {};
52564     uint32_t maxDrawIndexedIndexValue = {};
52565     uint32_t maxDrawIndirectCount = {};
52566     float maxSamplerLodBias = {};
52567     float maxSamplerAnisotropy = {};
52568     uint32_t maxViewports = {};
52569     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
52570     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
52571     uint32_t viewportSubPixelBits = {};
52572     size_t minMemoryMapAlignment = {};
52573     VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
52574     VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
52575     VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
52576     int32_t minTexelOffset = {};
52577     uint32_t maxTexelOffset = {};
52578     int32_t minTexelGatherOffset = {};
52579     uint32_t maxTexelGatherOffset = {};
52580     float minInterpolationOffset = {};
52581     float maxInterpolationOffset = {};
52582     uint32_t subPixelInterpolationOffsetBits = {};
52583     uint32_t maxFramebufferWidth = {};
52584     uint32_t maxFramebufferHeight = {};
52585     uint32_t maxFramebufferLayers = {};
52586     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
52587     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
52588     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
52589     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
52590     uint32_t maxColorAttachments = {};
52591     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
52592     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
52593     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
52594     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
52595     VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
52596     uint32_t maxSampleMaskWords = {};
52597     VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
52598     float timestampPeriod = {};
52599     uint32_t maxClipDistances = {};
52600     uint32_t maxCullDistances = {};
52601     uint32_t maxCombinedClipAndCullDistances = {};
52602     uint32_t discreteQueuePriorities = {};
52603     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
52604     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
52605     float pointSizeGranularity = {};
52606     float lineWidthGranularity = {};
52607     VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
52608     VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
52609     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
52610     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
52611     VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
52612 
52613   };
52614   static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" );
52615   static_assert( std::is_standard_layout<PhysicalDeviceLimits>::value, "struct wrapper is not a standard layout!" );
52616 
52617   struct PhysicalDeviceSparseProperties
52618   {
52619 
52620 
52621 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52622     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
52623     : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ), residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ), residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ), residencyAlignedMipSize( residencyAlignedMipSize_ ), residencyNonResidentStrict( residencyNonResidentStrict_ )
52624     {}
52625 
52626     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52627 
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52628     PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52629     {
52630       *this = rhs;
52631     }
52632 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52633 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52634     PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52635     {
52636       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>( &rhs );
52637       return *this;
52638     }
52639 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52640     PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52641     {
52642       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSparseProperties ) );
52643       return *this;
52644     }
52645 
52646 
operator VkPhysicalDeviceSparseProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52647     operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT
52648     {
52649       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
52650     }
52651 
operator VkPhysicalDeviceSparseProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52652     operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
52653     {
52654       return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
52655     }
52656 
52657 
52658 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52659     auto operator<=>( PhysicalDeviceSparseProperties const& ) const = default;
52660 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52661     bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52662     {
52663       return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
52664           && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
52665           && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
52666           && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
52667           && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
52668     }
52669 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties52670     bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52671     {
52672       return !operator==( rhs );
52673     }
52674 #endif
52675 
52676 
52677 
52678   public:
52679     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
52680     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
52681     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
52682     VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
52683     VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
52684 
52685   };
52686   static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" );
52687   static_assert( std::is_standard_layout<PhysicalDeviceSparseProperties>::value, "struct wrapper is not a standard layout!" );
52688 
52689   struct PhysicalDeviceProperties
52690   {
52691 
52692 
52693 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52694     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
52695     : apiVersion( apiVersion_ ), driverVersion( driverVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), deviceType( deviceType_ ), deviceName( deviceName_ ), pipelineCacheUUID( pipelineCacheUUID_ ), limits( limits_ ), sparseProperties( sparseProperties_ )
52696     {}
52697 
52698     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52699 
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52700     PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52701     {
52702       *this = rhs;
52703     }
52704 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52705 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52706     PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52707     {
52708       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>( &rhs );
52709       return *this;
52710     }
52711 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52712     PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52713     {
52714       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProperties ) );
52715       return *this;
52716     }
52717 
52718 
operator VkPhysicalDeviceProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52719     operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT
52720     {
52721       return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
52722     }
52723 
operator VkPhysicalDeviceProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52724     operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
52725     {
52726       return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
52727     }
52728 
52729 
52730 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52731     auto operator<=>( PhysicalDeviceProperties const& ) const = default;
52732 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52733     bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52734     {
52735       return ( apiVersion == rhs.apiVersion )
52736           && ( driverVersion == rhs.driverVersion )
52737           && ( vendorID == rhs.vendorID )
52738           && ( deviceID == rhs.deviceID )
52739           && ( deviceType == rhs.deviceType )
52740           && ( deviceName == rhs.deviceName )
52741           && ( pipelineCacheUUID == rhs.pipelineCacheUUID )
52742           && ( limits == rhs.limits )
52743           && ( sparseProperties == rhs.sparseProperties );
52744     }
52745 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties52746     bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52747     {
52748       return !operator==( rhs );
52749     }
52750 #endif
52751 
52752 
52753 
52754   public:
52755     uint32_t apiVersion = {};
52756     uint32_t driverVersion = {};
52757     uint32_t vendorID = {};
52758     uint32_t deviceID = {};
52759     VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
52760     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
52761     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
52762     VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
52763     VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
52764 
52765   };
52766   static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" );
52767   static_assert( std::is_standard_layout<PhysicalDeviceProperties>::value, "struct wrapper is not a standard layout!" );
52768 
52769   struct PhysicalDeviceProperties2
52770   {
52771     static const bool allowDuplicate = false;
52772     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
52773 
52774 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252775     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
52776     : properties( properties_ )
52777     {}
52778 
52779     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52780 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252781     PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52782     {
52783       *this = rhs;
52784     }
52785 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52786 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252787     PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52788     {
52789       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>( &rhs );
52790       return *this;
52791     }
52792 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252793     PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52794     {
52795       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProperties2 ) );
52796       return *this;
52797     }
52798 
52799 
operator VkPhysicalDeviceProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252800     operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT
52801     {
52802       return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
52803     }
52804 
operator VkPhysicalDeviceProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252805     operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
52806     {
52807       return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
52808     }
52809 
52810 
52811 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52812     auto operator<=>( PhysicalDeviceProperties2 const& ) const = default;
52813 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252814     bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52815     {
52816       return ( sType == rhs.sType )
52817           && ( pNext == rhs.pNext )
52818           && ( properties == rhs.properties );
52819     }
52820 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties252821     bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52822     {
52823       return !operator==( rhs );
52824     }
52825 #endif
52826 
52827 
52828 
52829   public:
52830     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
52831     void* pNext = {};
52832     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
52833 
52834   };
52835   static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" );
52836   static_assert( std::is_standard_layout<PhysicalDeviceProperties2>::value, "struct wrapper is not a standard layout!" );
52837 
52838   template <>
52839   struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
52840   {
52841     using Type = PhysicalDeviceProperties2;
52842   };
52843   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
52844 
52845   struct QueryPoolPerformanceCreateInfoKHR
52846   {
52847     static const bool allowDuplicate = false;
52848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
52849 
52850 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52851     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, uint32_t counterIndexCount_ = {}, const uint32_t* pCounterIndices_ = {}) VULKAN_HPP_NOEXCEPT
52852     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( counterIndexCount_ ), pCounterIndices( pCounterIndices_ )
52853     {}
52854 
52855     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52856 
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52857     QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52858     {
52859       *this = rhs;
52860     }
52861 
52862 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52863     QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ )
52864     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( static_cast<uint32_t>( counterIndices_.size() ) ), pCounterIndices( counterIndices_.data() )
52865     {}
52866 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
52867 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52868 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52869     QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52870     {
52871       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>( &rhs );
52872       return *this;
52873     }
52874 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52875     QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52876     {
52877       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolPerformanceCreateInfoKHR ) );
52878       return *this;
52879     }
52880 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52881     QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52882     {
52883       pNext = pNext_;
52884       return *this;
52885     }
52886 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52887     QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
52888     {
52889       queueFamilyIndex = queueFamilyIndex_;
52890       return *this;
52891     }
52892 
setCounterIndexCountVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52893     QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
52894     {
52895       counterIndexCount = counterIndexCount_;
52896       return *this;
52897     }
52898 
setPCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52899     QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
52900     {
52901       pCounterIndices = pCounterIndices_;
52902       return *this;
52903     }
52904 
52905 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52906     QueryPoolPerformanceCreateInfoKHR & setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
52907     {
52908       counterIndexCount = static_cast<uint32_t>( counterIndices_.size() );
52909       pCounterIndices = counterIndices_.data();
52910       return *this;
52911     }
52912 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
52913 
52914 
operator VkQueryPoolPerformanceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52915     operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
52916     {
52917       return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( this );
52918     }
52919 
operator VkQueryPoolPerformanceCreateInfoKHR&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52920     operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
52921     {
52922       return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>( this );
52923     }
52924 
52925 
52926 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52927     auto operator<=>( QueryPoolPerformanceCreateInfoKHR const& ) const = default;
52928 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52929     bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52930     {
52931       return ( sType == rhs.sType )
52932           && ( pNext == rhs.pNext )
52933           && ( queueFamilyIndex == rhs.queueFamilyIndex )
52934           && ( counterIndexCount == rhs.counterIndexCount )
52935           && ( pCounterIndices == rhs.pCounterIndices );
52936     }
52937 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR52938     bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52939     {
52940       return !operator==( rhs );
52941     }
52942 #endif
52943 
52944 
52945 
52946   public:
52947     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
52948     const void* pNext = {};
52949     uint32_t queueFamilyIndex = {};
52950     uint32_t counterIndexCount = {};
52951     const uint32_t* pCounterIndices = {};
52952 
52953   };
52954   static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" );
52955   static_assert( std::is_standard_layout<QueryPoolPerformanceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
52956 
52957   template <>
52958   struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
52959   {
52960     using Type = QueryPoolPerformanceCreateInfoKHR;
52961   };
52962 
52963   struct QueueFamilyProperties
52964   {
52965 
52966 
52967 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties52968     VULKAN_HPP_CONSTEXPR QueueFamilyProperties(VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, uint32_t queueCount_ = {}, uint32_t timestampValidBits_ = {}, VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {}) VULKAN_HPP_NOEXCEPT
52969     : queueFlags( queueFlags_ ), queueCount( queueCount_ ), timestampValidBits( timestampValidBits_ ), minImageTransferGranularity( minImageTransferGranularity_ )
52970     {}
52971 
52972     VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52973 
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties52974     QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52975     {
52976       *this = rhs;
52977     }
52978 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52979 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties52980     QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52981     {
52982       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>( &rhs );
52983       return *this;
52984     }
52985 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties52986     QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52987     {
52988       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyProperties ) );
52989       return *this;
52990     }
52991 
52992 
operator VkQueueFamilyProperties const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties52993     operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT
52994     {
52995       return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
52996     }
52997 
operator VkQueueFamilyProperties&VULKAN_HPP_NAMESPACE::QueueFamilyProperties52998     operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
52999     {
53000       return *reinterpret_cast<VkQueueFamilyProperties*>( this );
53001     }
53002 
53003 
53004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53005     auto operator<=>( QueueFamilyProperties const& ) const = default;
53006 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties53007     bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53008     {
53009       return ( queueFlags == rhs.queueFlags )
53010           && ( queueCount == rhs.queueCount )
53011           && ( timestampValidBits == rhs.timestampValidBits )
53012           && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
53013     }
53014 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties53015     bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53016     {
53017       return !operator==( rhs );
53018     }
53019 #endif
53020 
53021 
53022 
53023   public:
53024     VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
53025     uint32_t queueCount = {};
53026     uint32_t timestampValidBits = {};
53027     VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
53028 
53029   };
53030   static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" );
53031   static_assert( std::is_standard_layout<QueueFamilyProperties>::value, "struct wrapper is not a standard layout!" );
53032 
53033   struct QueueFamilyProperties2
53034   {
53035     static const bool allowDuplicate = false;
53036     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
53037 
53038 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties253039     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2(VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {}) VULKAN_HPP_NOEXCEPT
53040     : queueFamilyProperties( queueFamilyProperties_ )
53041     {}
53042 
53043     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53044 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties253045     QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53046     {
53047       *this = rhs;
53048     }
53049 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53050 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties253051     QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53052     {
53053       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>( &rhs );
53054       return *this;
53055     }
53056 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties253057     QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53058     {
53059       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyProperties2 ) );
53060       return *this;
53061     }
53062 
53063 
operator VkQueueFamilyProperties2 const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties253064     operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT
53065     {
53066       return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
53067     }
53068 
operator VkQueueFamilyProperties2&VULKAN_HPP_NAMESPACE::QueueFamilyProperties253069     operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
53070     {
53071       return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
53072     }
53073 
53074 
53075 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53076     auto operator<=>( QueueFamilyProperties2 const& ) const = default;
53077 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties253078     bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53079     {
53080       return ( sType == rhs.sType )
53081           && ( pNext == rhs.pNext )
53082           && ( queueFamilyProperties == rhs.queueFamilyProperties );
53083     }
53084 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties253085     bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53086     {
53087       return !operator==( rhs );
53088     }
53089 #endif
53090 
53091 
53092 
53093   public:
53094     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
53095     void* pNext = {};
53096     VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
53097 
53098   };
53099   static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" );
53100   static_assert( std::is_standard_layout<QueueFamilyProperties2>::value, "struct wrapper is not a standard layout!" );
53101 
53102   template <>
53103   struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
53104   {
53105     using Type = QueueFamilyProperties2;
53106   };
53107   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
53108 
53109   struct PhysicalDeviceSparseImageFormatInfo2
53110   {
53111     static const bool allowDuplicate = false;
53112     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
53113 
53114 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253115     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
53116     : format( format_ ), type( type_ ), samples( samples_ ), usage( usage_ ), tiling( tiling_ )
53117     {}
53118 
53119     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53120 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253121     PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53122     {
53123       *this = rhs;
53124     }
53125 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53126 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253127     PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53128     {
53129       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs );
53130       return *this;
53131     }
53132 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253133     PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53134     {
53135       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSparseImageFormatInfo2 ) );
53136       return *this;
53137     }
53138 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253139     PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53140     {
53141       pNext = pNext_;
53142       return *this;
53143     }
53144 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253145     PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
53146     {
53147       format = format_;
53148       return *this;
53149     }
53150 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253151     PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
53152     {
53153       type = type_;
53154       return *this;
53155     }
53156 
setSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253157     PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
53158     {
53159       samples = samples_;
53160       return *this;
53161     }
53162 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253163     PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
53164     {
53165       usage = usage_;
53166       return *this;
53167     }
53168 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253169     PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
53170     {
53171       tiling = tiling_;
53172       return *this;
53173     }
53174 
53175 
operator VkPhysicalDeviceSparseImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253176     operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
53177     {
53178       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
53179     }
53180 
operator VkPhysicalDeviceSparseImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253181     operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
53182     {
53183       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
53184     }
53185 
53186 
53187 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53188     auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const& ) const = default;
53189 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253190     bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53191     {
53192       return ( sType == rhs.sType )
53193           && ( pNext == rhs.pNext )
53194           && ( format == rhs.format )
53195           && ( type == rhs.type )
53196           && ( samples == rhs.samples )
53197           && ( usage == rhs.usage )
53198           && ( tiling == rhs.tiling );
53199     }
53200 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253201     bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53202     {
53203       return !operator==( rhs );
53204     }
53205 #endif
53206 
53207 
53208 
53209   public:
53210     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
53211     const void* pNext = {};
53212     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
53213     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
53214     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
53215     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
53216     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
53217 
53218   };
53219   static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" );
53220   static_assert( std::is_standard_layout<PhysicalDeviceSparseImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
53221 
53222   template <>
53223   struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
53224   {
53225     using Type = PhysicalDeviceSparseImageFormatInfo2;
53226   };
53227   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
53228 
53229   struct SparseImageFormatProperties2
53230   {
53231     static const bool allowDuplicate = false;
53232     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
53233 
53234 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253235     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
53236     : properties( properties_ )
53237     {}
53238 
53239     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53240 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253241     SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53242     {
53243       *this = rhs;
53244     }
53245 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53246 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253247     SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53248     {
53249       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>( &rhs );
53250       return *this;
53251     }
53252 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253253     SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53254     {
53255       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageFormatProperties2 ) );
53256       return *this;
53257     }
53258 
53259 
operator VkSparseImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253260     operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
53261     {
53262       return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
53263     }
53264 
operator VkSparseImageFormatProperties2&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253265     operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
53266     {
53267       return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
53268     }
53269 
53270 
53271 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53272     auto operator<=>( SparseImageFormatProperties2 const& ) const = default;
53273 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253274     bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53275     {
53276       return ( sType == rhs.sType )
53277           && ( pNext == rhs.pNext )
53278           && ( properties == rhs.properties );
53279     }
53280 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253281     bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53282     {
53283       return !operator==( rhs );
53284     }
53285 #endif
53286 
53287 
53288 
53289   public:
53290     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
53291     void* pNext = {};
53292     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
53293 
53294   };
53295   static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" );
53296   static_assert( std::is_standard_layout<SparseImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
53297 
53298   template <>
53299   struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
53300   {
53301     using Type = SparseImageFormatProperties2;
53302   };
53303   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
53304 
53305   struct FramebufferMixedSamplesCombinationNV
53306   {
53307     static const bool allowDuplicate = false;
53308     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
53309 
53310 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53311     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
53312     : coverageReductionMode( coverageReductionMode_ ), rasterizationSamples( rasterizationSamples_ ), depthStencilSamples( depthStencilSamples_ ), colorSamples( colorSamples_ )
53313     {}
53314 
53315     VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53316 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53317     FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53318     {
53319       *this = rhs;
53320     }
53321 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53322 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53323     FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53324     {
53325       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>( &rhs );
53326       return *this;
53327     }
53328 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53329     FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53330     {
53331       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferMixedSamplesCombinationNV ) );
53332       return *this;
53333     }
53334 
53335 
operator VkFramebufferMixedSamplesCombinationNV const&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53336     operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT
53337     {
53338       return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
53339     }
53340 
operator VkFramebufferMixedSamplesCombinationNV&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53341     operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
53342     {
53343       return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
53344     }
53345 
53346 
53347 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53348     auto operator<=>( FramebufferMixedSamplesCombinationNV const& ) const = default;
53349 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53350     bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53351     {
53352       return ( sType == rhs.sType )
53353           && ( pNext == rhs.pNext )
53354           && ( coverageReductionMode == rhs.coverageReductionMode )
53355           && ( rasterizationSamples == rhs.rasterizationSamples )
53356           && ( depthStencilSamples == rhs.depthStencilSamples )
53357           && ( colorSamples == rhs.colorSamples );
53358     }
53359 
operator !=VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53360     bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53361     {
53362       return !operator==( rhs );
53363     }
53364 #endif
53365 
53366 
53367 
53368   public:
53369     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
53370     void* pNext = {};
53371     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
53372     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
53373     VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
53374     VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
53375 
53376   };
53377   static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" );
53378   static_assert( std::is_standard_layout<FramebufferMixedSamplesCombinationNV>::value, "struct wrapper is not a standard layout!" );
53379 
53380   template <>
53381   struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
53382   {
53383     using Type = FramebufferMixedSamplesCombinationNV;
53384   };
53385 
53386   struct SurfaceCapabilities2EXT
53387   {
53388     static const bool allowDuplicate = false;
53389     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
53390 
53391 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53392     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
53393     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ), supportedSurfaceCounters( supportedSurfaceCounters_ )
53394     {}
53395 
53396     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53397 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53398     SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53399     {
53400       *this = rhs;
53401     }
53402 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53403 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53404     SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53405     {
53406       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>( &rhs );
53407       return *this;
53408     }
53409 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53410     SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53411     {
53412       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilities2EXT ) );
53413       return *this;
53414     }
53415 
53416 
operator VkSurfaceCapabilities2EXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53417     operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT
53418     {
53419       return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
53420     }
53421 
operator VkSurfaceCapabilities2EXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53422     operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
53423     {
53424       return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
53425     }
53426 
53427 
53428 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53429     auto operator<=>( SurfaceCapabilities2EXT const& ) const = default;
53430 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53431     bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53432     {
53433       return ( sType == rhs.sType )
53434           && ( pNext == rhs.pNext )
53435           && ( minImageCount == rhs.minImageCount )
53436           && ( maxImageCount == rhs.maxImageCount )
53437           && ( currentExtent == rhs.currentExtent )
53438           && ( minImageExtent == rhs.minImageExtent )
53439           && ( maxImageExtent == rhs.maxImageExtent )
53440           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
53441           && ( supportedTransforms == rhs.supportedTransforms )
53442           && ( currentTransform == rhs.currentTransform )
53443           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
53444           && ( supportedUsageFlags == rhs.supportedUsageFlags )
53445           && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
53446     }
53447 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53448     bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53449     {
53450       return !operator==( rhs );
53451     }
53452 #endif
53453 
53454 
53455 
53456   public:
53457     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
53458     void* pNext = {};
53459     uint32_t minImageCount = {};
53460     uint32_t maxImageCount = {};
53461     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
53462     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
53463     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
53464     uint32_t maxImageArrayLayers = {};
53465     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
53466     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
53467     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
53468     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
53469     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
53470 
53471   };
53472   static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" );
53473   static_assert( std::is_standard_layout<SurfaceCapabilities2EXT>::value, "struct wrapper is not a standard layout!" );
53474 
53475   template <>
53476   struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
53477   {
53478     using Type = SurfaceCapabilities2EXT;
53479   };
53480 
53481   struct SurfaceCapabilitiesKHR
53482   {
53483 
53484 
53485 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53486     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
53487     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ )
53488     {}
53489 
53490     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53491 
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53492     SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53493     {
53494       *this = rhs;
53495     }
53496 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53497 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53498     SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53499     {
53500       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>( &rhs );
53501       return *this;
53502     }
53503 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53504     SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53505     {
53506       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilitiesKHR ) );
53507       return *this;
53508     }
53509 
53510 
operator VkSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53511     operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
53512     {
53513       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
53514     }
53515 
operator VkSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53516     operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
53517     {
53518       return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
53519     }
53520 
53521 
53522 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53523     auto operator<=>( SurfaceCapabilitiesKHR const& ) const = default;
53524 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53525     bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53526     {
53527       return ( minImageCount == rhs.minImageCount )
53528           && ( maxImageCount == rhs.maxImageCount )
53529           && ( currentExtent == rhs.currentExtent )
53530           && ( minImageExtent == rhs.minImageExtent )
53531           && ( maxImageExtent == rhs.maxImageExtent )
53532           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
53533           && ( supportedTransforms == rhs.supportedTransforms )
53534           && ( currentTransform == rhs.currentTransform )
53535           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
53536           && ( supportedUsageFlags == rhs.supportedUsageFlags );
53537     }
53538 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53539     bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53540     {
53541       return !operator==( rhs );
53542     }
53543 #endif
53544 
53545 
53546 
53547   public:
53548     uint32_t minImageCount = {};
53549     uint32_t maxImageCount = {};
53550     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
53551     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
53552     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
53553     uint32_t maxImageArrayLayers = {};
53554     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
53555     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
53556     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
53557     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
53558 
53559   };
53560   static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
53561   static_assert( std::is_standard_layout<SurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
53562 
53563   struct SurfaceCapabilities2KHR
53564   {
53565     static const bool allowDuplicate = false;
53566     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
53567 
53568 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53569     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {}) VULKAN_HPP_NOEXCEPT
53570     : surfaceCapabilities( surfaceCapabilities_ )
53571     {}
53572 
53573     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53574 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53575     SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53576     {
53577       *this = rhs;
53578     }
53579 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53580 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53581     SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53582     {
53583       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>( &rhs );
53584       return *this;
53585     }
53586 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53587     SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53588     {
53589       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilities2KHR ) );
53590       return *this;
53591     }
53592 
53593 
operator VkSurfaceCapabilities2KHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53594     operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
53595     {
53596       return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
53597     }
53598 
operator VkSurfaceCapabilities2KHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53599     operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
53600     {
53601       return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
53602     }
53603 
53604 
53605 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53606     auto operator<=>( SurfaceCapabilities2KHR const& ) const = default;
53607 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53608     bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53609     {
53610       return ( sType == rhs.sType )
53611           && ( pNext == rhs.pNext )
53612           && ( surfaceCapabilities == rhs.surfaceCapabilities );
53613     }
53614 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR53615     bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53616     {
53617       return !operator==( rhs );
53618     }
53619 #endif
53620 
53621 
53622 
53623   public:
53624     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
53625     void* pNext = {};
53626     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
53627 
53628   };
53629   static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" );
53630   static_assert( std::is_standard_layout<SurfaceCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
53631 
53632   template <>
53633   struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
53634   {
53635     using Type = SurfaceCapabilities2KHR;
53636   };
53637 
53638   struct SurfaceFormatKHR
53639   {
53640 
53641 
53642 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR53643     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
53644     : format( format_ ), colorSpace( colorSpace_ )
53645     {}
53646 
53647     VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53648 
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR53649     SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53650     {
53651       *this = rhs;
53652     }
53653 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53654 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53655     SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53656     {
53657       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>( &rhs );
53658       return *this;
53659     }
53660 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53661     SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53662     {
53663       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFormatKHR ) );
53664       return *this;
53665     }
53666 
53667 
operator VkSurfaceFormatKHR const&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53668     operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT
53669     {
53670       return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
53671     }
53672 
operator VkSurfaceFormatKHR&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53673     operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
53674     {
53675       return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
53676     }
53677 
53678 
53679 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53680     auto operator<=>( SurfaceFormatKHR const& ) const = default;
53681 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53682     bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53683     {
53684       return ( format == rhs.format )
53685           && ( colorSpace == rhs.colorSpace );
53686     }
53687 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormatKHR53688     bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53689     {
53690       return !operator==( rhs );
53691     }
53692 #endif
53693 
53694 
53695 
53696   public:
53697     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
53698     VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
53699 
53700   };
53701   static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" );
53702   static_assert( std::is_standard_layout<SurfaceFormatKHR>::value, "struct wrapper is not a standard layout!" );
53703 
53704   struct SurfaceFormat2KHR
53705   {
53706     static const bool allowDuplicate = false;
53707     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
53708 
53709 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53710     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}) VULKAN_HPP_NOEXCEPT
53711     : surfaceFormat( surfaceFormat_ )
53712     {}
53713 
53714     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53715 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53716     SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53717     {
53718       *this = rhs;
53719     }
53720 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53721 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53722     SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53723     {
53724       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>( &rhs );
53725       return *this;
53726     }
53727 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53728     SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
53729     {
53730       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFormat2KHR ) );
53731       return *this;
53732     }
53733 
53734 
operator VkSurfaceFormat2KHR const&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53735     operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT
53736     {
53737       return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
53738     }
53739 
operator VkSurfaceFormat2KHR&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53740     operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
53741     {
53742       return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
53743     }
53744 
53745 
53746 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53747     auto operator<=>( SurfaceFormat2KHR const& ) const = default;
53748 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53749     bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53750     {
53751       return ( sType == rhs.sType )
53752           && ( pNext == rhs.pNext )
53753           && ( surfaceFormat == rhs.surfaceFormat );
53754     }
53755 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR53756     bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53757     {
53758       return !operator==( rhs );
53759     }
53760 #endif
53761 
53762 
53763 
53764   public:
53765     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
53766     void* pNext = {};
53767     VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
53768 
53769   };
53770   static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" );
53771   static_assert( std::is_standard_layout<SurfaceFormat2KHR>::value, "struct wrapper is not a standard layout!" );
53772 
53773   template <>
53774   struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
53775   {
53776     using Type = SurfaceFormat2KHR;
53777   };
53778 
53779   struct PhysicalDeviceToolPropertiesEXT
53780   {
53781     static const bool allowDuplicate = false;
53782     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT;
53783 
53784 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53785     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
53786     : name( name_ ), version( version_ ), purposes( purposes_ ), description( description_ ), layer( layer_ )
53787     {}
53788 
53789     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53790 
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53791     PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53792     {
53793       *this = rhs;
53794     }
53795 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53796 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53797     PhysicalDeviceToolPropertiesEXT & operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53798     {
53799       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT const *>( &rhs );
53800       return *this;
53801     }
53802 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53803     PhysicalDeviceToolPropertiesEXT & operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53804     {
53805       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceToolPropertiesEXT ) );
53806       return *this;
53807     }
53808 
53809 
operator VkPhysicalDeviceToolPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53810     operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
53811     {
53812       return *reinterpret_cast<const VkPhysicalDeviceToolPropertiesEXT*>( this );
53813     }
53814 
operator VkPhysicalDeviceToolPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53815     operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT
53816     {
53817       return *reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( this );
53818     }
53819 
53820 
53821 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53822     auto operator<=>( PhysicalDeviceToolPropertiesEXT const& ) const = default;
53823 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53824     bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53825     {
53826       return ( sType == rhs.sType )
53827           && ( pNext == rhs.pNext )
53828           && ( name == rhs.name )
53829           && ( version == rhs.version )
53830           && ( purposes == rhs.purposes )
53831           && ( description == rhs.description )
53832           && ( layer == rhs.layer );
53833     }
53834 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT53835     bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53836     {
53837       return !operator==( rhs );
53838     }
53839 #endif
53840 
53841 
53842 
53843   public:
53844     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT;
53845     void* pNext = {};
53846     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
53847     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
53848     VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {};
53849     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
53850     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
53851 
53852   };
53853   static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" );
53854   static_assert( std::is_standard_layout<PhysicalDeviceToolPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
53855 
53856   template <>
53857   struct CppType<StructureType, StructureType::ePhysicalDeviceToolPropertiesEXT>
53858   {
53859     using Type = PhysicalDeviceToolPropertiesEXT;
53860   };
53861 
53862 #ifndef VULKAN_HPP_NO_SMART_HANDLE
53863   template <typename Dispatch> class UniqueHandleTraits<Device, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
53864   using UniqueDevice = UniqueHandle<Device, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
53865 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
53866 
53867   class PhysicalDevice
53868   {
53869   public:
53870     using CType = VkPhysicalDevice;
53871 
53872     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice;
53873     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
53874 
53875   public:
PhysicalDevice()53876     VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT
53877       : m_physicalDevice(VK_NULL_HANDLE)
53878     {}
53879 
PhysicalDevice(std::nullptr_t)53880     VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
53881       : m_physicalDevice(VK_NULL_HANDLE)
53882     {}
53883 
PhysicalDevice(VkPhysicalDevice physicalDevice)53884     VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT
53885       : m_physicalDevice( physicalDevice )
53886     {}
53887 
53888 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPhysicalDevice physicalDevice)53889     PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT
53890     {
53891       m_physicalDevice = physicalDevice;
53892       return *this;
53893     }
53894 #endif
53895 
operator =(std::nullptr_t)53896     PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
53897     {
53898       m_physicalDevice = VK_NULL_HANDLE;
53899       return *this;
53900     }
53901 
53902 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53903     auto operator<=>( PhysicalDevice const& ) const = default;
53904 #else
operator ==(PhysicalDevice const & rhs) const53905     bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
53906     {
53907       return m_physicalDevice == rhs.m_physicalDevice;
53908     }
53909 
operator !=(PhysicalDevice const & rhs) const53910     bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
53911     {
53912       return m_physicalDevice != rhs.m_physicalDevice;
53913     }
53914 
operator <(PhysicalDevice const & rhs) const53915     bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
53916     {
53917       return m_physicalDevice < rhs.m_physicalDevice;
53918     }
53919 #endif
53920 
53921 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
53922     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53923     VULKAN_HPP_NODISCARD Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
53924 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53925     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53926     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;
53927 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53928 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
53929 
53930     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53931     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;
53932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53933     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53934     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;
53935 #ifndef VULKAN_HPP_NO_SMART_HANDLE
53936     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53937     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
53938 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
53939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53940 
53941     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53942     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;
53943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53944     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53945     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;
53946 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53947 
53948     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53949     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;
53950 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53951     template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53952     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53953     template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
53954     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53955 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53956 
53957     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53958     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;
53959 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53960     template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53961     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53962     template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
53963     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53965 
53966 
53967     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53968     VULKAN_HPP_NODISCARD Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
53969 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53970     template <typename Allocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53971     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;
53972     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>
53973     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;
53974     template <typename PerformanceCounterKHRAllocator = std::allocator<PerformanceCounterKHR>, typename PerformanceCounterDescriptionKHRAllocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53975     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;
53976     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>
53977     VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & countersAllocator, PerformanceCounterDescriptionKHRAllocator & counterDescriptionsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53978 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53979 
53980     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53981     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;
53982 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53983     template<typename Allocator  = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53984     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53985     template<typename Allocator  = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModeProperties2KHR>::value, int>::type = 0>
53986     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53988 
53989     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53990     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;
53991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
53992     template<typename Allocator  = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53993     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53994     template<typename Allocator  = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModePropertiesKHR>::value, int>::type = 0>
53995     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
53996 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
53997 
53998     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
53999     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;
54000 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54001     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54002     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;
54003 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54004 
54005     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54006     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;
54007 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54008     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54009     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;
54010 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54011 
54012     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54013     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;
54014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54015     template<typename Allocator  = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54016     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54017     template<typename Allocator  = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type = 0>
54018     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54019 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54020 
54021     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54022     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;
54023 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54024     template<typename Allocator  = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54025     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54026     template<typename Allocator  = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type = 0>
54027     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54028 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54029 
54030     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54031     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;
54032 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54033     template<typename Allocator  = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54034     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54035     template<typename Allocator  = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type = 0>
54036     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54037 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54038 
54039 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
54040     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54041     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54043     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54044     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54045 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54046 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
54047 
54048     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54049     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;
54050 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54051     template<typename Allocator  = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54052     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54053     template<typename Allocator  = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type = 0>
54054     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54055 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54056 
54057     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54058     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;
54059 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54060     template<typename Allocator  = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54061     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54062     template<typename Allocator  = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type = 0>
54063     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54064 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54065 
54066     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54067     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;
54068 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54069     template<typename Allocator  = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54070     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54071     template<typename Allocator  = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type = 0>
54072     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54073 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54074 
54075     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54076     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;
54077 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54078     template<typename Allocator  = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54079     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54080     template<typename Allocator  = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type = 0>
54081     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54082 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54083 
54084     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54085     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;
54086 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54087     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54088     VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54090 
54091     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54092     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;
54093 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54094     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54095     VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54097 
54098     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54099     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;
54100 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54101     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54102     VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54103 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54104 
54105     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54106     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;
54107 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54108     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54109     VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54111 
54112     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54113     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;
54114 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54115     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54116     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_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54117 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54118 
54119     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54120     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;
54121 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54122     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54123     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54124 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54125 
54126     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54127     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;
54128 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54129     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54130     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54131 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54132 
54133     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54134     void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54135 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54136     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54137     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54139 
54140     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54141     void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54143     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54144     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54145     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54146     StructureChain<X, Y, Z...> getFeatures2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54147 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54148 
54149     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54150     void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54151 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54152     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54153     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54154     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54155     StructureChain<X, Y, Z...> getFeatures2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54156 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54157 
54158     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54159     void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54160 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54161     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54162     VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54163 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54164 
54165     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54166     void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54167 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54168     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54169     VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54170     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54171     StructureChain<X, Y, Z...> getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54172 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54173 
54174     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54175     void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54176 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54177     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54178     VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54179     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54180     StructureChain<X, Y, Z...> getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54182 
54183     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54184     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;
54185 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54186     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54187     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, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54188 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54189 
54190     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54191     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;
54192 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54193     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54194     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;
54195     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54196     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;
54197 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54198 
54199     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54200     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;
54201 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54202     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54203     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;
54204     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54205     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;
54206 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54207 
54208     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54209     void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54210 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54211     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54212     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54213 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54214 
54215     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54216     void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54217 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54218     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54219     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54220     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54221     StructureChain<X, Y, Z...> getMemoryProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54222 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54223 
54224     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54225     void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54226 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54227     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54228     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54229     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54230     StructureChain<X, Y, Z...> getMemoryProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54231 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54232 
54233     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54234     void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54235 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54236     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54237     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54238 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54239 
54240     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54241     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;
54242 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54243     template<typename Allocator  = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54244     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54245     template<typename Allocator  = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, Rect2D>::value, int>::type = 0>
54246     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54247 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54248 
54249     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54250     void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54251 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54252     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54253     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54254 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54255 
54256     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54257     void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54259     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54260     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54261     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54262     StructureChain<X, Y, Z...> getProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54263 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54264 
54265     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54266     void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54268     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54269     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54270     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54271     StructureChain<X, Y, Z...> getProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54273 
54274     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54275     void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54276 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54277     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54278     uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54280 
54281 
54282     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54283     void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54284 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54285     template <typename QueueFamilyPropertiesAllocator = std::allocator<QueueFamilyProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54286     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54287     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>
54288     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54289 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54290 
54291     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54292     void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54293 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54294     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54295     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54296     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
54297     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54298     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54299     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54300     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
54301     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54302 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54303 
54304     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54305     void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54306 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54307     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54308     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54309     template<typename Allocator  = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
54310     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54311     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54312     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54313     template<typename StructureChain, typename Allocator  = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
54314     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54315 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54316 
54317 
54318     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54319     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 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54320 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54321     template <typename SparseImageFormatPropertiesAllocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54322     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;
54323     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>
54324     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 & propertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54325 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54326 
54327 
54328     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54329     void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54330 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54331     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54332     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54333     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>
54334     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & propertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54335 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54336 
54337     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54338     void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54339 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54340     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54341     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54342     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>
54343     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & propertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54344 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54345 
54346     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54347     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;
54348 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54349     template<typename Allocator  = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54350     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54351     template<typename Allocator  = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type = 0>
54352     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54353 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54354 
54355     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54356     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;
54357 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54358     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54359     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;
54360 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54361 
54362     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54363     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;
54364 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54365     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54366     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;
54367     template<typename X, typename Y, typename ...Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54368     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;
54369 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54370 
54371     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54372     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;
54373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54374     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54375     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;
54376 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54377 
54378     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54379     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;
54380 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54381     template<typename Allocator  = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54382     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54383     template<typename Allocator  = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type = 0>
54384     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54385 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54386 
54387     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54388     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;
54389 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54390     template<typename Allocator  = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54391     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54392     template<typename Allocator  = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormatKHR>::value, int>::type = 0>
54393     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54395 
54396 #ifdef VK_USE_PLATFORM_WIN32_KHR
54397     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54398     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;
54399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54400     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54401     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54402     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
54403     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54404 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54405 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
54406 
54407     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54408     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;
54409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54410     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54411     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54412     template<typename Allocator  = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
54413     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54414 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54415 
54416     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54417     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;
54418 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54419     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54420     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;
54421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54422 
54423     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54424     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;
54425 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54426     template<typename Allocator  = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54427     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type getToolPropertiesEXT(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54428     template<typename Allocator  = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type = 0>
54429     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54430 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54431 
54432 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
54433     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54434     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54435 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54436     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54437     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54438 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54439 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
54440 
54441 #ifdef VK_USE_PLATFORM_WIN32_KHR
54442 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
54443     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54444     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54445 #else
54446     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54447     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54448 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54449 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
54450 
54451 #ifdef VK_USE_PLATFORM_XCB_KHR
54452     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54453     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;
54454 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54455     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54456     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;
54457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54458 #endif /*VK_USE_PLATFORM_XCB_KHR*/
54459 
54460 #ifdef VK_USE_PLATFORM_XLIB_KHR
54461     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54462     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54463 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54464     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54465     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54466 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54467 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
54468 
54469 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
54470     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54471     Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
54472 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54473     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54474     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54475 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54476 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
54477 
54478 
54479 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
54480     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54481     Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54482 #else
54483     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54484     typename ResultValueType<void>::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54485 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54486 
54487 
operator VkPhysicalDevice() const54488     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT
54489     {
54490       return m_physicalDevice;
54491     }
54492 
operator bool() const54493     explicit operator bool() const VULKAN_HPP_NOEXCEPT
54494     {
54495       return m_physicalDevice != VK_NULL_HANDLE;
54496     }
54497 
operator !() const54498     bool operator!() const VULKAN_HPP_NOEXCEPT
54499     {
54500       return m_physicalDevice == VK_NULL_HANDLE;
54501     }
54502 
54503   private:
54504     VkPhysicalDevice m_physicalDevice;
54505   };
54506   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
54507 
54508   template <>
54509   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePhysicalDevice>
54510   {
54511     using type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
54512   };
54513 
54514   template <>
54515   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice>
54516   {
54517     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
54518   };
54519 
54520 
54521   template <>
54522   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice>
54523   {
54524     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
54525   };
54526 
54527 
54528   template <>
54529   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PhysicalDevice>
54530   {
54531     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
54532   };
54533 
54534   struct DeviceGroupDeviceCreateInfo
54535   {
54536     static const bool allowDuplicate = false;
54537     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
54538 
54539 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54540     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo(uint32_t physicalDeviceCount_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {}) VULKAN_HPP_NOEXCEPT
54541     : physicalDeviceCount( physicalDeviceCount_ ), pPhysicalDevices( pPhysicalDevices_ )
54542     {}
54543 
54544     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54545 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54546     DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54547     {
54548       *this = rhs;
54549     }
54550 
54551 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54552     DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ )
54553     : physicalDeviceCount( static_cast<uint32_t>( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() )
54554     {}
54555 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54556 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54557 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54558     DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54559     {
54560       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>( &rhs );
54561       return *this;
54562     }
54563 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54564     DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54565     {
54566       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupDeviceCreateInfo ) );
54567       return *this;
54568     }
54569 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54570     DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
54571     {
54572       pNext = pNext_;
54573       return *this;
54574     }
54575 
setPhysicalDeviceCountVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54576     DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
54577     {
54578       physicalDeviceCount = physicalDeviceCount_;
54579       return *this;
54580     }
54581 
setPPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54582     DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
54583     {
54584       pPhysicalDevices = pPhysicalDevices_;
54585       return *this;
54586     }
54587 
54588 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54589     DeviceGroupDeviceCreateInfo & setPhysicalDevices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT
54590     {
54591       physicalDeviceCount = static_cast<uint32_t>( physicalDevices_.size() );
54592       pPhysicalDevices = physicalDevices_.data();
54593       return *this;
54594     }
54595 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54596 
54597 
operator VkDeviceGroupDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54598     operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
54599     {
54600       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
54601     }
54602 
operator VkDeviceGroupDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54603     operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
54604     {
54605       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
54606     }
54607 
54608 
54609 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54610     auto operator<=>( DeviceGroupDeviceCreateInfo const& ) const = default;
54611 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54612     bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
54613     {
54614       return ( sType == rhs.sType )
54615           && ( pNext == rhs.pNext )
54616           && ( physicalDeviceCount == rhs.physicalDeviceCount )
54617           && ( pPhysicalDevices == rhs.pPhysicalDevices );
54618     }
54619 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo54620     bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
54621     {
54622       return !operator==( rhs );
54623     }
54624 #endif
54625 
54626 
54627 
54628   public:
54629     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
54630     const void* pNext = {};
54631     uint32_t physicalDeviceCount = {};
54632     const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {};
54633 
54634   };
54635   static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" );
54636   static_assert( std::is_standard_layout<DeviceGroupDeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
54637 
54638   template <>
54639   struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
54640   {
54641     using Type = DeviceGroupDeviceCreateInfo;
54642   };
54643   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
54644 
54645   struct DeviceGroupPresentInfoKHR
54646   {
54647     static const bool allowDuplicate = false;
54648     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
54649 
54650 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54651     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(uint32_t swapchainCount_ = {}, const uint32_t* pDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal) VULKAN_HPP_NOEXCEPT
54652     : swapchainCount( swapchainCount_ ), pDeviceMasks( pDeviceMasks_ ), mode( mode_ )
54653     {}
54654 
54655     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54656 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54657     DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54658     {
54659       *this = rhs;
54660     }
54661 
54662 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54663     DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal )
54664     : swapchainCount( static_cast<uint32_t>( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ )
54665     {}
54666 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54667 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54668 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54669     DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54670     {
54671       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>( &rhs );
54672       return *this;
54673     }
54674 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54675     DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54676     {
54677       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupPresentInfoKHR ) );
54678       return *this;
54679     }
54680 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54681     DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
54682     {
54683       pNext = pNext_;
54684       return *this;
54685     }
54686 
setSwapchainCountVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54687     DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
54688     {
54689       swapchainCount = swapchainCount_;
54690       return *this;
54691     }
54692 
setPDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54693     DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
54694     {
54695       pDeviceMasks = pDeviceMasks_;
54696       return *this;
54697     }
54698 
54699 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54700     DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
54701     {
54702       swapchainCount = static_cast<uint32_t>( deviceMasks_.size() );
54703       pDeviceMasks = deviceMasks_.data();
54704       return *this;
54705     }
54706 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54707 
setModeVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54708     DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
54709     {
54710       mode = mode_;
54711       return *this;
54712     }
54713 
54714 
operator VkDeviceGroupPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54715     operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
54716     {
54717       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
54718     }
54719 
operator VkDeviceGroupPresentInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54720     operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
54721     {
54722       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
54723     }
54724 
54725 
54726 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54727     auto operator<=>( DeviceGroupPresentInfoKHR const& ) const = default;
54728 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54729     bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54730     {
54731       return ( sType == rhs.sType )
54732           && ( pNext == rhs.pNext )
54733           && ( swapchainCount == rhs.swapchainCount )
54734           && ( pDeviceMasks == rhs.pDeviceMasks )
54735           && ( mode == rhs.mode );
54736     }
54737 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR54738     bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54739     {
54740       return !operator==( rhs );
54741     }
54742 #endif
54743 
54744 
54745 
54746   public:
54747     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
54748     const void* pNext = {};
54749     uint32_t swapchainCount = {};
54750     const uint32_t* pDeviceMasks = {};
54751     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
54752 
54753   };
54754   static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" );
54755   static_assert( std::is_standard_layout<DeviceGroupPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
54756 
54757   template <>
54758   struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
54759   {
54760     using Type = DeviceGroupPresentInfoKHR;
54761   };
54762 
54763   struct DeviceGroupRenderPassBeginInfo
54764   {
54765     static const bool allowDuplicate = false;
54766     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
54767 
54768 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54769     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo(uint32_t deviceMask_ = {}, uint32_t deviceRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {}) VULKAN_HPP_NOEXCEPT
54770     : deviceMask( deviceMask_ ), deviceRenderAreaCount( deviceRenderAreaCount_ ), pDeviceRenderAreas( pDeviceRenderAreas_ )
54771     {}
54772 
54773     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54774 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54775     DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54776     {
54777       *this = rhs;
54778     }
54779 
54780 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54781     DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ )
54782     : deviceMask( deviceMask_ ), deviceRenderAreaCount( static_cast<uint32_t>( deviceRenderAreas_.size() ) ), pDeviceRenderAreas( deviceRenderAreas_.data() )
54783     {}
54784 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54785 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54786 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54787     DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54788     {
54789       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>( &rhs );
54790       return *this;
54791     }
54792 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54793     DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54794     {
54795       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupRenderPassBeginInfo ) );
54796       return *this;
54797     }
54798 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54799     DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
54800     {
54801       pNext = pNext_;
54802       return *this;
54803     }
54804 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54805     DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
54806     {
54807       deviceMask = deviceMask_;
54808       return *this;
54809     }
54810 
setDeviceRenderAreaCountVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54811     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
54812     {
54813       deviceRenderAreaCount = deviceRenderAreaCount_;
54814       return *this;
54815     }
54816 
setPDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54817     DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
54818     {
54819       pDeviceRenderAreas = pDeviceRenderAreas_;
54820       return *this;
54821     }
54822 
54823 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54824     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
54825     {
54826       deviceRenderAreaCount = static_cast<uint32_t>( deviceRenderAreas_.size() );
54827       pDeviceRenderAreas = deviceRenderAreas_.data();
54828       return *this;
54829     }
54830 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54831 
54832 
operator VkDeviceGroupRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54833     operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
54834     {
54835       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
54836     }
54837 
operator VkDeviceGroupRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54838     operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
54839     {
54840       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
54841     }
54842 
54843 
54844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54845     auto operator<=>( DeviceGroupRenderPassBeginInfo const& ) const = default;
54846 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54847     bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
54848     {
54849       return ( sType == rhs.sType )
54850           && ( pNext == rhs.pNext )
54851           && ( deviceMask == rhs.deviceMask )
54852           && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
54853           && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
54854     }
54855 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo54856     bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
54857     {
54858       return !operator==( rhs );
54859     }
54860 #endif
54861 
54862 
54863 
54864   public:
54865     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
54866     const void* pNext = {};
54867     uint32_t deviceMask = {};
54868     uint32_t deviceRenderAreaCount = {};
54869     const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {};
54870 
54871   };
54872   static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" );
54873   static_assert( std::is_standard_layout<DeviceGroupRenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
54874 
54875   template <>
54876   struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
54877   {
54878     using Type = DeviceGroupRenderPassBeginInfo;
54879   };
54880   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
54881 
54882   struct DeviceGroupSubmitInfo
54883   {
54884     static const bool allowDuplicate = false;
54885     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
54886 
54887 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54888     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
54889     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ), commandBufferCount( commandBufferCount_ ), pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
54890     {}
54891 
54892     VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54893 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54894     DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54895     {
54896       *this = rhs;
54897     }
54898 
54899 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54900     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_ = {} )
54901     : 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() )
54902     {}
54903 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54904 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54905 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54906     DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54907     {
54908       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>( &rhs );
54909       return *this;
54910     }
54911 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54912     DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
54913     {
54914       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupSubmitInfo ) );
54915       return *this;
54916     }
54917 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54918     DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
54919     {
54920       pNext = pNext_;
54921       return *this;
54922     }
54923 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54924     DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
54925     {
54926       waitSemaphoreCount = waitSemaphoreCount_;
54927       return *this;
54928     }
54929 
setPWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54930     DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
54931     {
54932       pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
54933       return *this;
54934     }
54935 
54936 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54937     DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
54938     {
54939       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() );
54940       pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
54941       return *this;
54942     }
54943 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54944 
setCommandBufferCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54945     DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
54946     {
54947       commandBufferCount = commandBufferCount_;
54948       return *this;
54949     }
54950 
setPCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54951     DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
54952     {
54953       pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
54954       return *this;
54955     }
54956 
54957 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54958     DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
54959     {
54960       commandBufferCount = static_cast<uint32_t>( commandBufferDeviceMasks_.size() );
54961       pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
54962       return *this;
54963     }
54964 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54965 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54966     DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
54967     {
54968       signalSemaphoreCount = signalSemaphoreCount_;
54969       return *this;
54970     }
54971 
setPSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54972     DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
54973     {
54974       pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
54975       return *this;
54976     }
54977 
54978 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54979     DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
54980     {
54981       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() );
54982       pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
54983       return *this;
54984     }
54985 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
54986 
54987 
operator VkDeviceGroupSubmitInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54988     operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
54989     {
54990       return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
54991     }
54992 
operator VkDeviceGroupSubmitInfo&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo54993     operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
54994     {
54995       return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
54996     }
54997 
54998 
54999 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55000     auto operator<=>( DeviceGroupSubmitInfo const& ) const = default;
55001 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55002     bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55003     {
55004       return ( sType == rhs.sType )
55005           && ( pNext == rhs.pNext )
55006           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
55007           && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
55008           && ( commandBufferCount == rhs.commandBufferCount )
55009           && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
55010           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
55011           && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
55012     }
55013 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55014     bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55015     {
55016       return !operator==( rhs );
55017     }
55018 #endif
55019 
55020 
55021 
55022   public:
55023     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
55024     const void* pNext = {};
55025     uint32_t waitSemaphoreCount = {};
55026     const uint32_t* pWaitSemaphoreDeviceIndices = {};
55027     uint32_t commandBufferCount = {};
55028     const uint32_t* pCommandBufferDeviceMasks = {};
55029     uint32_t signalSemaphoreCount = {};
55030     const uint32_t* pSignalSemaphoreDeviceIndices = {};
55031 
55032   };
55033   static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" );
55034   static_assert( std::is_standard_layout<DeviceGroupSubmitInfo>::value, "struct wrapper is not a standard layout!" );
55035 
55036   template <>
55037   struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
55038   {
55039     using Type = DeviceGroupSubmitInfo;
55040   };
55041   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
55042 
55043   struct DeviceGroupSwapchainCreateInfoKHR
55044   {
55045     static const bool allowDuplicate = false;
55046     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
55047 
55048 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55049     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
55050     : modes( modes_ )
55051     {}
55052 
55053     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55054 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55055     DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55056     {
55057       *this = rhs;
55058     }
55059 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55060 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55061     DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55062     {
55063       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>( &rhs );
55064       return *this;
55065     }
55066 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55067     DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55068     {
55069       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupSwapchainCreateInfoKHR ) );
55070       return *this;
55071     }
55072 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55073     DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55074     {
55075       pNext = pNext_;
55076       return *this;
55077     }
55078 
setModesVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55079     DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
55080     {
55081       modes = modes_;
55082       return *this;
55083     }
55084 
55085 
operator VkDeviceGroupSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55086     operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55087     {
55088       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
55089     }
55090 
operator VkDeviceGroupSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55091     operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
55092     {
55093       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
55094     }
55095 
55096 
55097 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55098     auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const& ) const = default;
55099 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55100     bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55101     {
55102       return ( sType == rhs.sType )
55103           && ( pNext == rhs.pNext )
55104           && ( modes == rhs.modes );
55105     }
55106 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55107     bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55108     {
55109       return !operator==( rhs );
55110     }
55111 #endif
55112 
55113 
55114 
55115   public:
55116     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
55117     const void* pNext = {};
55118     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
55119 
55120   };
55121   static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
55122   static_assert( std::is_standard_layout<DeviceGroupSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
55123 
55124   template <>
55125   struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
55126   {
55127     using Type = DeviceGroupSwapchainCreateInfoKHR;
55128   };
55129 
55130   struct DeviceMemoryOverallocationCreateInfoAMD
55131   {
55132     static const bool allowDuplicate = false;
55133     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
55134 
55135 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55136     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault) VULKAN_HPP_NOEXCEPT
55137     : overallocationBehavior( overallocationBehavior_ )
55138     {}
55139 
55140     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55141 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55142     DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55143     {
55144       *this = rhs;
55145     }
55146 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55147 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55148     DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55149     {
55150       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs );
55151       return *this;
55152     }
55153 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55154     DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55155     {
55156       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryOverallocationCreateInfoAMD ) );
55157       return *this;
55158     }
55159 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55160     DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55161     {
55162       pNext = pNext_;
55163       return *this;
55164     }
55165 
setOverallocationBehaviorVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55166     DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
55167     {
55168       overallocationBehavior = overallocationBehavior_;
55169       return *this;
55170     }
55171 
55172 
operator VkDeviceMemoryOverallocationCreateInfoAMD const&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55173     operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
55174     {
55175       return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
55176     }
55177 
operator VkDeviceMemoryOverallocationCreateInfoAMD&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55178     operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
55179     {
55180       return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
55181     }
55182 
55183 
55184 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55185     auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const& ) const = default;
55186 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55187     bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55188     {
55189       return ( sType == rhs.sType )
55190           && ( pNext == rhs.pNext )
55191           && ( overallocationBehavior == rhs.overallocationBehavior );
55192     }
55193 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55194     bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55195     {
55196       return !operator==( rhs );
55197     }
55198 #endif
55199 
55200 
55201 
55202   public:
55203     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
55204     const void* pNext = {};
55205     VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
55206 
55207   };
55208   static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" );
55209   static_assert( std::is_standard_layout<DeviceMemoryOverallocationCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
55210 
55211   template <>
55212   struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
55213   {
55214     using Type = DeviceMemoryOverallocationCreateInfoAMD;
55215   };
55216 
55217   struct DeviceMemoryReportCallbackDataEXT
55218   {
55219     static const bool allowDuplicate = false;
55220     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT;
55221 
55222 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55223     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
55224     : flags( flags_ ), type( type_ ), memoryObjectId( memoryObjectId_ ), size( size_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), heapIndex( heapIndex_ )
55225     {}
55226 
55227     VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55228 
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55229     DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55230     {
55231       *this = rhs;
55232     }
55233 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55234 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55235     DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55236     {
55237       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const *>( &rhs );
55238       return *this;
55239     }
55240 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55241     DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55242     {
55243       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryReportCallbackDataEXT ) );
55244       return *this;
55245     }
55246 
55247 
operator VkDeviceMemoryReportCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55248     operator VkDeviceMemoryReportCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
55249     {
55250       return *reinterpret_cast<const VkDeviceMemoryReportCallbackDataEXT*>( this );
55251     }
55252 
operator VkDeviceMemoryReportCallbackDataEXT&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55253     operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
55254     {
55255       return *reinterpret_cast<VkDeviceMemoryReportCallbackDataEXT*>( this );
55256     }
55257 
55258 
55259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55260     auto operator<=>( DeviceMemoryReportCallbackDataEXT const& ) const = default;
55261 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55262     bool operator==( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55263     {
55264       return ( sType == rhs.sType )
55265           && ( pNext == rhs.pNext )
55266           && ( flags == rhs.flags )
55267           && ( type == rhs.type )
55268           && ( memoryObjectId == rhs.memoryObjectId )
55269           && ( size == rhs.size )
55270           && ( objectType == rhs.objectType )
55271           && ( objectHandle == rhs.objectHandle )
55272           && ( heapIndex == rhs.heapIndex );
55273     }
55274 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55275     bool operator!=( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55276     {
55277       return !operator==( rhs );
55278     }
55279 #endif
55280 
55281 
55282 
55283   public:
55284     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
55285     const void* pNext = {};
55286     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
55287     VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
55288     uint64_t memoryObjectId = {};
55289     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
55290     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
55291     uint64_t objectHandle = {};
55292     uint32_t heapIndex = {};
55293 
55294   };
55295   static_assert( sizeof( DeviceMemoryReportCallbackDataEXT ) == sizeof( VkDeviceMemoryReportCallbackDataEXT ), "struct and wrapper have different size!" );
55296   static_assert( std::is_standard_layout<DeviceMemoryReportCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
55297 
55298   template <>
55299   struct CppType<StructureType, StructureType::eDeviceMemoryReportCallbackDataEXT>
55300   {
55301     using Type = DeviceMemoryReportCallbackDataEXT;
55302   };
55303 
55304   struct DevicePrivateDataCreateInfoEXT
55305   {
55306     static const bool allowDuplicate = true;
55307     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT;
55308 
55309 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55310     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT(uint32_t privateDataSlotRequestCount_ = {}) VULKAN_HPP_NOEXCEPT
55311     : privateDataSlotRequestCount( privateDataSlotRequestCount_ )
55312     {}
55313 
55314     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55315 
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55316     DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55317     {
55318       *this = rhs;
55319     }
55320 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55321 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55322     DevicePrivateDataCreateInfoEXT & operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55323     {
55324       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT const *>( &rhs );
55325       return *this;
55326     }
55327 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55328     DevicePrivateDataCreateInfoEXT & operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55329     {
55330       memcpy( static_cast<void *>( this ), &rhs, sizeof( DevicePrivateDataCreateInfoEXT ) );
55331       return *this;
55332     }
55333 
setPNextVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55334     DevicePrivateDataCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55335     {
55336       pNext = pNext_;
55337       return *this;
55338     }
55339 
setPrivateDataSlotRequestCountVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55340     DevicePrivateDataCreateInfoEXT & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
55341     {
55342       privateDataSlotRequestCount = privateDataSlotRequestCount_;
55343       return *this;
55344     }
55345 
55346 
operator VkDevicePrivateDataCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55347     operator VkDevicePrivateDataCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55348     {
55349       return *reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>( this );
55350     }
55351 
operator VkDevicePrivateDataCreateInfoEXT&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55352     operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55353     {
55354       return *reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>( this );
55355     }
55356 
55357 
55358 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55359     auto operator<=>( DevicePrivateDataCreateInfoEXT const& ) const = default;
55360 #else
operator ==VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55361     bool operator==( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55362     {
55363       return ( sType == rhs.sType )
55364           && ( pNext == rhs.pNext )
55365           && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
55366     }
55367 
operator !=VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55368     bool operator!=( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55369     {
55370       return !operator==( rhs );
55371     }
55372 #endif
55373 
55374 
55375 
55376   public:
55377     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT;
55378     const void* pNext = {};
55379     uint32_t privateDataSlotRequestCount = {};
55380 
55381   };
55382   static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), "struct and wrapper have different size!" );
55383   static_assert( std::is_standard_layout<DevicePrivateDataCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55384 
55385   template <>
55386   struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfoEXT>
55387   {
55388     using Type = DevicePrivateDataCreateInfoEXT;
55389   };
55390 
55391   struct DeviceQueueGlobalPriorityCreateInfoEXT
55392   {
55393     static const bool allowDuplicate = false;
55394     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
55395 
55396 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55397     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT(VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow) VULKAN_HPP_NOEXCEPT
55398     : globalPriority( globalPriority_ )
55399     {}
55400 
55401     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55402 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55403     DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55404     {
55405       *this = rhs;
55406     }
55407 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55408 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55409     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55410     {
55411       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT const *>( &rhs );
55412       return *this;
55413     }
55414 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55415     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55416     {
55417       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) );
55418       return *this;
55419     }
55420 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55421     DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55422     {
55423       pNext = pNext_;
55424       return *this;
55425     }
55426 
setGlobalPriorityVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55427     DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT
55428     {
55429       globalPriority = globalPriority_;
55430       return *this;
55431     }
55432 
55433 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55434     operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55435     {
55436       return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
55437     }
55438 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55439     operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55440     {
55441       return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
55442     }
55443 
55444 
55445 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55446     auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const& ) const = default;
55447 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55448     bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55449     {
55450       return ( sType == rhs.sType )
55451           && ( pNext == rhs.pNext )
55452           && ( globalPriority == rhs.globalPriority );
55453     }
55454 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55455     bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55456     {
55457       return !operator==( rhs );
55458     }
55459 #endif
55460 
55461 
55462 
55463   public:
55464     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
55465     const void* pNext = {};
55466     VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow;
55467 
55468   };
55469   static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" );
55470   static_assert( std::is_standard_layout<DeviceQueueGlobalPriorityCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55471 
55472   template <>
55473   struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT>
55474   {
55475     using Type = DeviceQueueGlobalPriorityCreateInfoEXT;
55476   };
55477 
55478 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
55479   struct DirectFBSurfaceCreateInfoEXT
55480   {
55481     static const bool allowDuplicate = false;
55482     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT;
55483 
55484 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55485     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, IDirectFB* dfb_ = {}, IDirectFBSurface* surface_ = {}) VULKAN_HPP_NOEXCEPT
55486     : flags( flags_ ), dfb( dfb_ ), surface( surface_ )
55487     {}
55488 
55489     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55490 
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55491     DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55492     {
55493       *this = rhs;
55494     }
55495 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55496 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55497     DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55498     {
55499       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const *>( &rhs );
55500       return *this;
55501     }
55502 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55503     DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55504     {
55505       memcpy( static_cast<void *>( this ), &rhs, sizeof( DirectFBSurfaceCreateInfoEXT ) );
55506       return *this;
55507     }
55508 
setPNextVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55509     DirectFBSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55510     {
55511       pNext = pNext_;
55512       return *this;
55513     }
55514 
setFlagsVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55515     DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
55516     {
55517       flags = flags_;
55518       return *this;
55519     }
55520 
setDfbVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55521     DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB* dfb_ ) VULKAN_HPP_NOEXCEPT
55522     {
55523       dfb = dfb_;
55524       return *this;
55525     }
55526 
setSurfaceVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55527     DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface* surface_ ) VULKAN_HPP_NOEXCEPT
55528     {
55529       surface = surface_;
55530       return *this;
55531     }
55532 
55533 
operator VkDirectFBSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55534     operator VkDirectFBSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55535     {
55536       return *reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( this );
55537     }
55538 
operator VkDirectFBSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55539     operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55540     {
55541       return *reinterpret_cast<VkDirectFBSurfaceCreateInfoEXT*>( this );
55542     }
55543 
55544 
55545 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55546     auto operator<=>( DirectFBSurfaceCreateInfoEXT const& ) const = default;
55547 #else
operator ==VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55548     bool operator==( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55549     {
55550       return ( sType == rhs.sType )
55551           && ( pNext == rhs.pNext )
55552           && ( flags == rhs.flags )
55553           && ( dfb == rhs.dfb )
55554           && ( surface == rhs.surface );
55555     }
55556 
operator !=VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT55557     bool operator!=( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55558     {
55559       return !operator==( rhs );
55560     }
55561 #endif
55562 
55563 
55564 
55565   public:
55566     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT;
55567     const void* pNext = {};
55568     VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {};
55569     IDirectFB* dfb = {};
55570     IDirectFBSurface* surface = {};
55571 
55572   };
55573   static_assert( sizeof( DirectFBSurfaceCreateInfoEXT ) == sizeof( VkDirectFBSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
55574   static_assert( std::is_standard_layout<DirectFBSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55575 
55576   template <>
55577   struct CppType<StructureType, StructureType::eDirectfbSurfaceCreateInfoEXT>
55578   {
55579     using Type = DirectFBSurfaceCreateInfoEXT;
55580   };
55581 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
55582 
55583   struct DispatchIndirectCommand
55584   {
55585 
55586 
55587 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55588     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand(uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {}) VULKAN_HPP_NOEXCEPT
55589     : x( x_ ), y( y_ ), z( z_ )
55590     {}
55591 
55592     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55593 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55594     DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
55595     {
55596       *this = rhs;
55597     }
55598 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55599 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55600     DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
55601     {
55602       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>( &rhs );
55603       return *this;
55604     }
55605 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55606     DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
55607     {
55608       memcpy( static_cast<void *>( this ), &rhs, sizeof( DispatchIndirectCommand ) );
55609       return *this;
55610     }
55611 
setXVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55612     DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
55613     {
55614       x = x_;
55615       return *this;
55616     }
55617 
setYVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55618     DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
55619     {
55620       y = y_;
55621       return *this;
55622     }
55623 
setZVULKAN_HPP_NAMESPACE::DispatchIndirectCommand55624     DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
55625     {
55626       z = z_;
55627       return *this;
55628     }
55629 
55630 
operator VkDispatchIndirectCommand const&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55631     operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
55632     {
55633       return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
55634     }
55635 
operator VkDispatchIndirectCommand&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55636     operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
55637     {
55638       return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
55639     }
55640 
55641 
55642 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55643     auto operator<=>( DispatchIndirectCommand const& ) const = default;
55644 #else
operator ==VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55645     bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
55646     {
55647       return ( x == rhs.x )
55648           && ( y == rhs.y )
55649           && ( z == rhs.z );
55650     }
55651 
operator !=VULKAN_HPP_NAMESPACE::DispatchIndirectCommand55652     bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
55653     {
55654       return !operator==( rhs );
55655     }
55656 #endif
55657 
55658 
55659 
55660   public:
55661     uint32_t x = {};
55662     uint32_t y = {};
55663     uint32_t z = {};
55664 
55665   };
55666   static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" );
55667   static_assert( std::is_standard_layout<DispatchIndirectCommand>::value, "struct wrapper is not a standard layout!" );
55668 
55669   struct DisplayNativeHdrSurfaceCapabilitiesAMD
55670   {
55671     static const bool allowDuplicate = false;
55672     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
55673 
55674 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55675     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {}) VULKAN_HPP_NOEXCEPT
55676     : localDimmingSupport( localDimmingSupport_ )
55677     {}
55678 
55679     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55680 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55681     DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55682     {
55683       *this = rhs;
55684     }
55685 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55686 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55687     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55688     {
55689       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs );
55690       return *this;
55691     }
55692 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55693     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55694     {
55695       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) );
55696       return *this;
55697     }
55698 
55699 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55700     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT
55701     {
55702       return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
55703     }
55704 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55705     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
55706     {
55707       return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
55708     }
55709 
55710 
55711 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55712     auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const& ) const = default;
55713 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55714     bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55715     {
55716       return ( sType == rhs.sType )
55717           && ( pNext == rhs.pNext )
55718           && ( localDimmingSupport == rhs.localDimmingSupport );
55719     }
55720 
operator !=VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD55721     bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55722     {
55723       return !operator==( rhs );
55724     }
55725 #endif
55726 
55727 
55728 
55729   public:
55730     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
55731     void* pNext = {};
55732     VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
55733 
55734   };
55735   static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" );
55736   static_assert( std::is_standard_layout<DisplayNativeHdrSurfaceCapabilitiesAMD>::value, "struct wrapper is not a standard layout!" );
55737 
55738   template <>
55739   struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
55740   {
55741     using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
55742   };
55743 
55744   struct DisplayPresentInfoKHR
55745   {
55746     static const bool allowDuplicate = false;
55747     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
55748 
55749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55750     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR(VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {}) VULKAN_HPP_NOEXCEPT
55751     : srcRect( srcRect_ ), dstRect( dstRect_ ), persistent( persistent_ )
55752     {}
55753 
55754     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55755 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55756     DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55757     {
55758       *this = rhs;
55759     }
55760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55761 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55762     DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55763     {
55764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>( &rhs );
55765       return *this;
55766     }
55767 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55768     DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55769     {
55770       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPresentInfoKHR ) );
55771       return *this;
55772     }
55773 
setPNextVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55774     DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55775     {
55776       pNext = pNext_;
55777       return *this;
55778     }
55779 
setSrcRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55780     DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
55781     {
55782       srcRect = srcRect_;
55783       return *this;
55784     }
55785 
setDstRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55786     DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
55787     {
55788       dstRect = dstRect_;
55789       return *this;
55790     }
55791 
setPersistentVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55792     DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
55793     {
55794       persistent = persistent_;
55795       return *this;
55796     }
55797 
55798 
operator VkDisplayPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55799     operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55800     {
55801       return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
55802     }
55803 
operator VkDisplayPresentInfoKHR&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55804     operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
55805     {
55806       return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
55807     }
55808 
55809 
55810 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55811     auto operator<=>( DisplayPresentInfoKHR const& ) const = default;
55812 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55813     bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55814     {
55815       return ( sType == rhs.sType )
55816           && ( pNext == rhs.pNext )
55817           && ( srcRect == rhs.srcRect )
55818           && ( dstRect == rhs.dstRect )
55819           && ( persistent == rhs.persistent );
55820     }
55821 
operator !=VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR55822     bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55823     {
55824       return !operator==( rhs );
55825     }
55826 #endif
55827 
55828 
55829 
55830   public:
55831     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
55832     const void* pNext = {};
55833     VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
55834     VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
55835     VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
55836 
55837   };
55838   static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" );
55839   static_assert( std::is_standard_layout<DisplayPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
55840 
55841   template <>
55842   struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
55843   {
55844     using Type = DisplayPresentInfoKHR;
55845   };
55846 
55847   struct DisplaySurfaceCreateInfoKHR
55848   {
55849     static const bool allowDuplicate = false;
55850     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
55851 
55852 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55853     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
55854     : flags( flags_ ), displayMode( displayMode_ ), planeIndex( planeIndex_ ), planeStackIndex( planeStackIndex_ ), transform( transform_ ), globalAlpha( globalAlpha_ ), alphaMode( alphaMode_ ), imageExtent( imageExtent_ )
55855     {}
55856 
55857     VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55858 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55859     DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55860     {
55861       *this = rhs;
55862     }
55863 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55864 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55865     DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55866     {
55867       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>( &rhs );
55868       return *this;
55869     }
55870 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55871     DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55872     {
55873       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplaySurfaceCreateInfoKHR ) );
55874       return *this;
55875     }
55876 
setPNextVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55877     DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55878     {
55879       pNext = pNext_;
55880       return *this;
55881     }
55882 
setFlagsVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55883     DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
55884     {
55885       flags = flags_;
55886       return *this;
55887     }
55888 
setDisplayModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55889     DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
55890     {
55891       displayMode = displayMode_;
55892       return *this;
55893     }
55894 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55895     DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
55896     {
55897       planeIndex = planeIndex_;
55898       return *this;
55899     }
55900 
setPlaneStackIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55901     DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
55902     {
55903       planeStackIndex = planeStackIndex_;
55904       return *this;
55905     }
55906 
setTransformVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55907     DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
55908     {
55909       transform = transform_;
55910       return *this;
55911     }
55912 
setGlobalAlphaVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55913     DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
55914     {
55915       globalAlpha = globalAlpha_;
55916       return *this;
55917     }
55918 
setAlphaModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55919     DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
55920     {
55921       alphaMode = alphaMode_;
55922       return *this;
55923     }
55924 
setImageExtentVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55925     DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
55926     {
55927       imageExtent = imageExtent_;
55928       return *this;
55929     }
55930 
55931 
operator VkDisplaySurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55932     operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55933     {
55934       return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
55935     }
55936 
operator VkDisplaySurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55937     operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
55938     {
55939       return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
55940     }
55941 
55942 
55943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55944     auto operator<=>( DisplaySurfaceCreateInfoKHR const& ) const = default;
55945 #else
operator ==VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55946     bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55947     {
55948       return ( sType == rhs.sType )
55949           && ( pNext == rhs.pNext )
55950           && ( flags == rhs.flags )
55951           && ( displayMode == rhs.displayMode )
55952           && ( planeIndex == rhs.planeIndex )
55953           && ( planeStackIndex == rhs.planeStackIndex )
55954           && ( transform == rhs.transform )
55955           && ( globalAlpha == rhs.globalAlpha )
55956           && ( alphaMode == rhs.alphaMode )
55957           && ( imageExtent == rhs.imageExtent );
55958     }
55959 
operator !=VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR55960     bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55961     {
55962       return !operator==( rhs );
55963     }
55964 #endif
55965 
55966 
55967 
55968   public:
55969     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
55970     const void* pNext = {};
55971     VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
55972     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
55973     uint32_t planeIndex = {};
55974     uint32_t planeStackIndex = {};
55975     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
55976     float globalAlpha = {};
55977     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
55978     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
55979 
55980   };
55981   static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
55982   static_assert( std::is_standard_layout<DisplaySurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
55983 
55984   template <>
55985   struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
55986   {
55987     using Type = DisplaySurfaceCreateInfoKHR;
55988   };
55989 
55990   struct DrawIndexedIndirectCommand
55991   {
55992 
55993 
55994 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand55995     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand(uint32_t indexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstIndex_ = {}, int32_t vertexOffset_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
55996     : indexCount( indexCount_ ), instanceCount( instanceCount_ ), firstIndex( firstIndex_ ), vertexOffset( vertexOffset_ ), firstInstance( firstInstance_ )
55997     {}
55998 
55999     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56000 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56001     DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56002     {
56003       *this = rhs;
56004     }
56005 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56006 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56007     DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56008     {
56009       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>( &rhs );
56010       return *this;
56011     }
56012 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56013     DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56014     {
56015       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawIndexedIndirectCommand ) );
56016       return *this;
56017     }
56018 
setIndexCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56019     DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
56020     {
56021       indexCount = indexCount_;
56022       return *this;
56023     }
56024 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56025     DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
56026     {
56027       instanceCount = instanceCount_;
56028       return *this;
56029     }
56030 
setFirstIndexVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56031     DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
56032     {
56033       firstIndex = firstIndex_;
56034       return *this;
56035     }
56036 
setVertexOffsetVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56037     DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
56038     {
56039       vertexOffset = vertexOffset_;
56040       return *this;
56041     }
56042 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56043     DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
56044     {
56045       firstInstance = firstInstance_;
56046       return *this;
56047     }
56048 
56049 
operator VkDrawIndexedIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56050     operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56051     {
56052       return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
56053     }
56054 
operator VkDrawIndexedIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56055     operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
56056     {
56057       return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
56058     }
56059 
56060 
56061 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56062     auto operator<=>( DrawIndexedIndirectCommand const& ) const = default;
56063 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56064     bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56065     {
56066       return ( indexCount == rhs.indexCount )
56067           && ( instanceCount == rhs.instanceCount )
56068           && ( firstIndex == rhs.firstIndex )
56069           && ( vertexOffset == rhs.vertexOffset )
56070           && ( firstInstance == rhs.firstInstance );
56071     }
56072 
operator !=VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56073     bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56074     {
56075       return !operator==( rhs );
56076     }
56077 #endif
56078 
56079 
56080 
56081   public:
56082     uint32_t indexCount = {};
56083     uint32_t instanceCount = {};
56084     uint32_t firstIndex = {};
56085     int32_t vertexOffset = {};
56086     uint32_t firstInstance = {};
56087 
56088   };
56089   static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" );
56090   static_assert( std::is_standard_layout<DrawIndexedIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56091 
56092   struct DrawIndirectCommand
56093   {
56094 
56095 
56096 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand56097     VULKAN_HPP_CONSTEXPR DrawIndirectCommand(uint32_t vertexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstVertex_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
56098     : vertexCount( vertexCount_ ), instanceCount( instanceCount_ ), firstVertex( firstVertex_ ), firstInstance( firstInstance_ )
56099     {}
56100 
56101     VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56102 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand56103     DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56104     {
56105       *this = rhs;
56106     }
56107 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56108 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand56109     DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56110     {
56111       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>( &rhs );
56112       return *this;
56113     }
56114 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand56115     DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56116     {
56117       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawIndirectCommand ) );
56118       return *this;
56119     }
56120 
setVertexCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand56121     DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
56122     {
56123       vertexCount = vertexCount_;
56124       return *this;
56125     }
56126 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand56127     DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
56128     {
56129       instanceCount = instanceCount_;
56130       return *this;
56131     }
56132 
setFirstVertexVULKAN_HPP_NAMESPACE::DrawIndirectCommand56133     DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
56134     {
56135       firstVertex = firstVertex_;
56136       return *this;
56137     }
56138 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndirectCommand56139     DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
56140     {
56141       firstInstance = firstInstance_;
56142       return *this;
56143     }
56144 
56145 
operator VkDrawIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndirectCommand56146     operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56147     {
56148       return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
56149     }
56150 
operator VkDrawIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndirectCommand56151     operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
56152     {
56153       return *reinterpret_cast<VkDrawIndirectCommand*>( this );
56154     }
56155 
56156 
56157 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56158     auto operator<=>( DrawIndirectCommand const& ) const = default;
56159 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndirectCommand56160     bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56161     {
56162       return ( vertexCount == rhs.vertexCount )
56163           && ( instanceCount == rhs.instanceCount )
56164           && ( firstVertex == rhs.firstVertex )
56165           && ( firstInstance == rhs.firstInstance );
56166     }
56167 
operator !=VULKAN_HPP_NAMESPACE::DrawIndirectCommand56168     bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56169     {
56170       return !operator==( rhs );
56171     }
56172 #endif
56173 
56174 
56175 
56176   public:
56177     uint32_t vertexCount = {};
56178     uint32_t instanceCount = {};
56179     uint32_t firstVertex = {};
56180     uint32_t firstInstance = {};
56181 
56182   };
56183   static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" );
56184   static_assert( std::is_standard_layout<DrawIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56185 
56186   struct DrawMeshTasksIndirectCommandNV
56187   {
56188 
56189 
56190 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56191     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV(uint32_t taskCount_ = {}, uint32_t firstTask_ = {}) VULKAN_HPP_NOEXCEPT
56192     : taskCount( taskCount_ ), firstTask( firstTask_ )
56193     {}
56194 
56195     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56196 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56197     DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56198     {
56199       *this = rhs;
56200     }
56201 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56202 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56203     DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56204     {
56205       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>( &rhs );
56206       return *this;
56207     }
56208 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56209     DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56210     {
56211       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawMeshTasksIndirectCommandNV ) );
56212       return *this;
56213     }
56214 
setTaskCountVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56215     DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
56216     {
56217       taskCount = taskCount_;
56218       return *this;
56219     }
56220 
setFirstTaskVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56221     DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
56222     {
56223       firstTask = firstTask_;
56224       return *this;
56225     }
56226 
56227 
operator VkDrawMeshTasksIndirectCommandNV const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56228     operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
56229     {
56230       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
56231     }
56232 
operator VkDrawMeshTasksIndirectCommandNV&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56233     operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
56234     {
56235       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
56236     }
56237 
56238 
56239 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56240     auto operator<=>( DrawMeshTasksIndirectCommandNV const& ) const = default;
56241 #else
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56242     bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56243     {
56244       return ( taskCount == rhs.taskCount )
56245           && ( firstTask == rhs.firstTask );
56246     }
56247 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56248     bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56249     {
56250       return !operator==( rhs );
56251     }
56252 #endif
56253 
56254 
56255 
56256   public:
56257     uint32_t taskCount = {};
56258     uint32_t firstTask = {};
56259 
56260   };
56261   static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" );
56262   static_assert( std::is_standard_layout<DrawMeshTasksIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
56263 
56264   struct DrmFormatModifierPropertiesEXT
56265   {
56266 
56267 
56268 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56269     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT
56270     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
56271     {}
56272 
56273     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56274 
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56275     DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56276     {
56277       *this = rhs;
56278     }
56279 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56280 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56281     DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56282     {
56283       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>( &rhs );
56284       return *this;
56285     }
56286 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56287     DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56288     {
56289       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrmFormatModifierPropertiesEXT ) );
56290       return *this;
56291     }
56292 
56293 
operator VkDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56294     operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
56295     {
56296       return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
56297     }
56298 
operator VkDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56299     operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
56300     {
56301       return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
56302     }
56303 
56304 
56305 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56306     auto operator<=>( DrmFormatModifierPropertiesEXT const& ) const = default;
56307 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56308     bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56309     {
56310       return ( drmFormatModifier == rhs.drmFormatModifier )
56311           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
56312           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
56313     }
56314 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56315     bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56316     {
56317       return !operator==( rhs );
56318     }
56319 #endif
56320 
56321 
56322 
56323   public:
56324     uint64_t drmFormatModifier = {};
56325     uint32_t drmFormatModifierPlaneCount = {};
56326     VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
56327 
56328   };
56329   static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
56330   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
56331 
56332   struct DrmFormatModifierPropertiesListEXT
56333   {
56334     static const bool allowDuplicate = false;
56335     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
56336 
56337 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56338     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {}) VULKAN_HPP_NOEXCEPT
56339     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
56340     {}
56341 
56342     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56343 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56344     DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56345     {
56346       *this = rhs;
56347     }
56348 
56349 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56350     DrmFormatModifierPropertiesListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT> const & drmFormatModifierProperties_ )
56351     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
56352     {}
56353 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
56354 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56355 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56356     DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56357     {
56358       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>( &rhs );
56359       return *this;
56360     }
56361 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56362     DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56363     {
56364       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrmFormatModifierPropertiesListEXT ) );
56365       return *this;
56366     }
56367 
56368 
operator VkDrmFormatModifierPropertiesListEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56369     operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT
56370     {
56371       return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
56372     }
56373 
operator VkDrmFormatModifierPropertiesListEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56374     operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
56375     {
56376       return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
56377     }
56378 
56379 
56380 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56381     auto operator<=>( DrmFormatModifierPropertiesListEXT const& ) const = default;
56382 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56383     bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56384     {
56385       return ( sType == rhs.sType )
56386           && ( pNext == rhs.pNext )
56387           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
56388           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
56389     }
56390 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56391     bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56392     {
56393       return !operator==( rhs );
56394     }
56395 #endif
56396 
56397 
56398 
56399   public:
56400     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
56401     void* pNext = {};
56402     uint32_t drmFormatModifierCount = {};
56403     VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {};
56404 
56405   };
56406   static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" );
56407   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesListEXT>::value, "struct wrapper is not a standard layout!" );
56408 
56409   template <>
56410   struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
56411   {
56412     using Type = DrmFormatModifierPropertiesListEXT;
56413   };
56414 
56415   struct ExportFenceCreateInfo
56416   {
56417     static const bool allowDuplicate = false;
56418     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
56419 
56420 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56421     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
56422     : handleTypes( handleTypes_ )
56423     {}
56424 
56425     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56426 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56427     ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56428     {
56429       *this = rhs;
56430     }
56431 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56432 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56433     ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56434     {
56435       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>( &rhs );
56436       return *this;
56437     }
56438 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56439     ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56440     {
56441       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportFenceCreateInfo ) );
56442       return *this;
56443     }
56444 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56445     ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56446     {
56447       pNext = pNext_;
56448       return *this;
56449     }
56450 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56451     ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
56452     {
56453       handleTypes = handleTypes_;
56454       return *this;
56455     }
56456 
56457 
operator VkExportFenceCreateInfo const&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56458     operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
56459     {
56460       return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
56461     }
56462 
operator VkExportFenceCreateInfo&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56463     operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
56464     {
56465       return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
56466     }
56467 
56468 
56469 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56470     auto operator<=>( ExportFenceCreateInfo const& ) const = default;
56471 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56472     bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56473     {
56474       return ( sType == rhs.sType )
56475           && ( pNext == rhs.pNext )
56476           && ( handleTypes == rhs.handleTypes );
56477     }
56478 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56479     bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56480     {
56481       return !operator==( rhs );
56482     }
56483 #endif
56484 
56485 
56486 
56487   public:
56488     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
56489     const void* pNext = {};
56490     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
56491 
56492   };
56493   static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" );
56494   static_assert( std::is_standard_layout<ExportFenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
56495 
56496   template <>
56497   struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
56498   {
56499     using Type = ExportFenceCreateInfo;
56500   };
56501   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
56502 
56503 #ifdef VK_USE_PLATFORM_WIN32_KHR
56504   struct ExportFenceWin32HandleInfoKHR
56505   {
56506     static const bool allowDuplicate = false;
56507     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
56508 
56509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56510     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
56511     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
56512     {}
56513 
56514     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56515 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56516     ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56517     {
56518       *this = rhs;
56519     }
56520 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56521 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56522     ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56523     {
56524       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>( &rhs );
56525       return *this;
56526     }
56527 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56528     ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56529     {
56530       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportFenceWin32HandleInfoKHR ) );
56531       return *this;
56532     }
56533 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56534     ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56535     {
56536       pNext = pNext_;
56537       return *this;
56538     }
56539 
setPAttributesVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56540     ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
56541     {
56542       pAttributes = pAttributes_;
56543       return *this;
56544     }
56545 
setDwAccessVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56546     ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
56547     {
56548       dwAccess = dwAccess_;
56549       return *this;
56550     }
56551 
setNameVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56552     ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
56553     {
56554       name = name_;
56555       return *this;
56556     }
56557 
56558 
operator VkExportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56559     operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56560     {
56561       return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
56562     }
56563 
operator VkExportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56564     operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
56565     {
56566       return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
56567     }
56568 
56569 
56570 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56571     auto operator<=>( ExportFenceWin32HandleInfoKHR const& ) const = default;
56572 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56573     bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56574     {
56575       return ( sType == rhs.sType )
56576           && ( pNext == rhs.pNext )
56577           && ( pAttributes == rhs.pAttributes )
56578           && ( dwAccess == rhs.dwAccess )
56579           && ( name == rhs.name );
56580     }
56581 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR56582     bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56583     {
56584       return !operator==( rhs );
56585     }
56586 #endif
56587 
56588 
56589 
56590   public:
56591     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
56592     const void* pNext = {};
56593     const SECURITY_ATTRIBUTES* pAttributes = {};
56594     DWORD dwAccess = {};
56595     LPCWSTR name = {};
56596 
56597   };
56598   static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
56599   static_assert( std::is_standard_layout<ExportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
56600 
56601   template <>
56602   struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
56603   {
56604     using Type = ExportFenceWin32HandleInfoKHR;
56605   };
56606 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
56607 
56608   struct ExportMemoryAllocateInfo
56609   {
56610     static const bool allowDuplicate = false;
56611     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
56612 
56613 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56614     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
56615     : handleTypes( handleTypes_ )
56616     {}
56617 
56618     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56619 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56620     ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56621     {
56622       *this = rhs;
56623     }
56624 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56625 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56626     ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56627     {
56628       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>( &rhs );
56629       return *this;
56630     }
56631 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56632     ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56633     {
56634       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryAllocateInfo ) );
56635       return *this;
56636     }
56637 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56638     ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56639     {
56640       pNext = pNext_;
56641       return *this;
56642     }
56643 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56644     ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
56645     {
56646       handleTypes = handleTypes_;
56647       return *this;
56648     }
56649 
56650 
operator VkExportMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56651     operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
56652     {
56653       return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
56654     }
56655 
operator VkExportMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56656     operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
56657     {
56658       return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
56659     }
56660 
56661 
56662 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56663     auto operator<=>( ExportMemoryAllocateInfo const& ) const = default;
56664 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56665     bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56666     {
56667       return ( sType == rhs.sType )
56668           && ( pNext == rhs.pNext )
56669           && ( handleTypes == rhs.handleTypes );
56670     }
56671 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo56672     bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56673     {
56674       return !operator==( rhs );
56675     }
56676 #endif
56677 
56678 
56679 
56680   public:
56681     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
56682     const void* pNext = {};
56683     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
56684 
56685   };
56686   static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" );
56687   static_assert( std::is_standard_layout<ExportMemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
56688 
56689   template <>
56690   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
56691   {
56692     using Type = ExportMemoryAllocateInfo;
56693   };
56694   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
56695 
56696   struct ExportMemoryAllocateInfoNV
56697   {
56698     static const bool allowDuplicate = false;
56699     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
56700 
56701 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56702     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
56703     : handleTypes( handleTypes_ )
56704     {}
56705 
56706     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56707 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56708     ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
56709     {
56710       *this = rhs;
56711     }
56712 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56713 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56714     ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
56715     {
56716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>( &rhs );
56717       return *this;
56718     }
56719 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56720     ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
56721     {
56722       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryAllocateInfoNV ) );
56723       return *this;
56724     }
56725 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56726     ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56727     {
56728       pNext = pNext_;
56729       return *this;
56730     }
56731 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56732     ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
56733     {
56734       handleTypes = handleTypes_;
56735       return *this;
56736     }
56737 
56738 
operator VkExportMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56739     operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
56740     {
56741       return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
56742     }
56743 
operator VkExportMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56744     operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
56745     {
56746       return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
56747     }
56748 
56749 
56750 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56751     auto operator<=>( ExportMemoryAllocateInfoNV const& ) const = default;
56752 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56753     bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56754     {
56755       return ( sType == rhs.sType )
56756           && ( pNext == rhs.pNext )
56757           && ( handleTypes == rhs.handleTypes );
56758     }
56759 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV56760     bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56761     {
56762       return !operator==( rhs );
56763     }
56764 #endif
56765 
56766 
56767 
56768   public:
56769     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
56770     const void* pNext = {};
56771     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
56772 
56773   };
56774   static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
56775   static_assert( std::is_standard_layout<ExportMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
56776 
56777   template <>
56778   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
56779   {
56780     using Type = ExportMemoryAllocateInfoNV;
56781   };
56782 
56783 #ifdef VK_USE_PLATFORM_WIN32_KHR
56784   struct ExportMemoryWin32HandleInfoKHR
56785   {
56786     static const bool allowDuplicate = false;
56787     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
56788 
56789 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56790     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
56791     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
56792     {}
56793 
56794     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56795 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56796     ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56797     {
56798       *this = rhs;
56799     }
56800 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56801 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56802     ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56803     {
56804       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>( &rhs );
56805       return *this;
56806     }
56807 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56808     ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56809     {
56810       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoKHR ) );
56811       return *this;
56812     }
56813 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56814     ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56815     {
56816       pNext = pNext_;
56817       return *this;
56818     }
56819 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56820     ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
56821     {
56822       pAttributes = pAttributes_;
56823       return *this;
56824     }
56825 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56826     ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
56827     {
56828       dwAccess = dwAccess_;
56829       return *this;
56830     }
56831 
setNameVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56832     ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
56833     {
56834       name = name_;
56835       return *this;
56836     }
56837 
56838 
operator VkExportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56839     operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56840     {
56841       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
56842     }
56843 
operator VkExportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56844     operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
56845     {
56846       return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
56847     }
56848 
56849 
56850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56851     auto operator<=>( ExportMemoryWin32HandleInfoKHR const& ) const = default;
56852 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56853     bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56854     {
56855       return ( sType == rhs.sType )
56856           && ( pNext == rhs.pNext )
56857           && ( pAttributes == rhs.pAttributes )
56858           && ( dwAccess == rhs.dwAccess )
56859           && ( name == rhs.name );
56860     }
56861 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR56862     bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56863     {
56864       return !operator==( rhs );
56865     }
56866 #endif
56867 
56868 
56869 
56870   public:
56871     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
56872     const void* pNext = {};
56873     const SECURITY_ATTRIBUTES* pAttributes = {};
56874     DWORD dwAccess = {};
56875     LPCWSTR name = {};
56876 
56877   };
56878   static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
56879   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
56880 
56881   template <>
56882   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
56883   {
56884     using Type = ExportMemoryWin32HandleInfoKHR;
56885   };
56886 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
56887 
56888 #ifdef VK_USE_PLATFORM_WIN32_KHR
56889   struct ExportMemoryWin32HandleInfoNV
56890   {
56891     static const bool allowDuplicate = false;
56892     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
56893 
56894 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56895     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}) VULKAN_HPP_NOEXCEPT
56896     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ )
56897     {}
56898 
56899     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56900 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56901     ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
56902     {
56903       *this = rhs;
56904     }
56905 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56906 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56907     ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
56908     {
56909       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>( &rhs );
56910       return *this;
56911     }
56912 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56913     ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
56914     {
56915       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoNV ) );
56916       return *this;
56917     }
56918 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56919     ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56920     {
56921       pNext = pNext_;
56922       return *this;
56923     }
56924 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56925     ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
56926     {
56927       pAttributes = pAttributes_;
56928       return *this;
56929     }
56930 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56931     ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
56932     {
56933       dwAccess = dwAccess_;
56934       return *this;
56935     }
56936 
56937 
operator VkExportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56938     operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
56939     {
56940       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
56941     }
56942 
operator VkExportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56943     operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
56944     {
56945       return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
56946     }
56947 
56948 
56949 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56950     auto operator<=>( ExportMemoryWin32HandleInfoNV const& ) const = default;
56951 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56952     bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56953     {
56954       return ( sType == rhs.sType )
56955           && ( pNext == rhs.pNext )
56956           && ( pAttributes == rhs.pAttributes )
56957           && ( dwAccess == rhs.dwAccess );
56958     }
56959 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV56960     bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56961     {
56962       return !operator==( rhs );
56963     }
56964 #endif
56965 
56966 
56967 
56968   public:
56969     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
56970     const void* pNext = {};
56971     const SECURITY_ATTRIBUTES* pAttributes = {};
56972     DWORD dwAccess = {};
56973 
56974   };
56975   static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
56976   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
56977 
56978   template <>
56979   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
56980   {
56981     using Type = ExportMemoryWin32HandleInfoNV;
56982   };
56983 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
56984 
56985   struct ExportSemaphoreCreateInfo
56986   {
56987     static const bool allowDuplicate = false;
56988     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
56989 
56990 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo56991     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
56992     : handleTypes( handleTypes_ )
56993     {}
56994 
56995     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56996 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo56997     ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56998     {
56999       *this = rhs;
57000     }
57001 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57002 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57003     ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57004     {
57005       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>( &rhs );
57006       return *this;
57007     }
57008 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57009     ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57010     {
57011       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportSemaphoreCreateInfo ) );
57012       return *this;
57013     }
57014 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57015     ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57016     {
57017       pNext = pNext_;
57018       return *this;
57019     }
57020 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57021     ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57022     {
57023       handleTypes = handleTypes_;
57024       return *this;
57025     }
57026 
57027 
operator VkExportSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57028     operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57029     {
57030       return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
57031     }
57032 
operator VkExportSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57033     operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
57034     {
57035       return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
57036     }
57037 
57038 
57039 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57040     auto operator<=>( ExportSemaphoreCreateInfo const& ) const = default;
57041 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57042     bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57043     {
57044       return ( sType == rhs.sType )
57045           && ( pNext == rhs.pNext )
57046           && ( handleTypes == rhs.handleTypes );
57047     }
57048 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57049     bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57050     {
57051       return !operator==( rhs );
57052     }
57053 #endif
57054 
57055 
57056 
57057   public:
57058     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
57059     const void* pNext = {};
57060     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
57061 
57062   };
57063   static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" );
57064   static_assert( std::is_standard_layout<ExportSemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
57065 
57066   template <>
57067   struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
57068   {
57069     using Type = ExportSemaphoreCreateInfo;
57070   };
57071   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
57072 
57073 #ifdef VK_USE_PLATFORM_WIN32_KHR
57074   struct ExportSemaphoreWin32HandleInfoKHR
57075   {
57076     static const bool allowDuplicate = false;
57077     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
57078 
57079 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57080     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57081     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57082     {}
57083 
57084     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57085 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57086     ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57087     {
57088       *this = rhs;
57089     }
57090 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57091 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57092     ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57093     {
57094       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>( &rhs );
57095       return *this;
57096     }
57097 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57098     ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57099     {
57100       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportSemaphoreWin32HandleInfoKHR ) );
57101       return *this;
57102     }
57103 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57104     ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57105     {
57106       pNext = pNext_;
57107       return *this;
57108     }
57109 
setPAttributesVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57110     ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57111     {
57112       pAttributes = pAttributes_;
57113       return *this;
57114     }
57115 
setDwAccessVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57116     ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57117     {
57118       dwAccess = dwAccess_;
57119       return *this;
57120     }
57121 
setNameVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57122     ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57123     {
57124       name = name_;
57125       return *this;
57126     }
57127 
57128 
operator VkExportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57129     operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57130     {
57131       return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
57132     }
57133 
operator VkExportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57134     operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57135     {
57136       return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
57137     }
57138 
57139 
57140 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57141     auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const& ) const = default;
57142 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57143     bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57144     {
57145       return ( sType == rhs.sType )
57146           && ( pNext == rhs.pNext )
57147           && ( pAttributes == rhs.pAttributes )
57148           && ( dwAccess == rhs.dwAccess )
57149           && ( name == rhs.name );
57150     }
57151 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57152     bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57153     {
57154       return !operator==( rhs );
57155     }
57156 #endif
57157 
57158 
57159 
57160   public:
57161     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
57162     const void* pNext = {};
57163     const SECURITY_ATTRIBUTES* pAttributes = {};
57164     DWORD dwAccess = {};
57165     LPCWSTR name = {};
57166 
57167   };
57168   static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57169   static_assert( std::is_standard_layout<ExportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57170 
57171   template <>
57172   struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
57173   {
57174     using Type = ExportSemaphoreWin32HandleInfoKHR;
57175   };
57176 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57177 
57178 #ifdef VK_USE_PLATFORM_ANDROID_KHR
57179   struct ExternalFormatANDROID
57180   {
57181     static const bool allowDuplicate = false;
57182     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
57183 
57184 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57185     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID(uint64_t externalFormat_ = {}) VULKAN_HPP_NOEXCEPT
57186     : externalFormat( externalFormat_ )
57187     {}
57188 
57189     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57190 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57191     ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57192     {
57193       *this = rhs;
57194     }
57195 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57196 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57197     ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57198     {
57199       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>( &rhs );
57200       return *this;
57201     }
57202 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57203     ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57204     {
57205       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalFormatANDROID ) );
57206       return *this;
57207     }
57208 
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57209     ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57210     {
57211       pNext = pNext_;
57212       return *this;
57213     }
57214 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57215     ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
57216     {
57217       externalFormat = externalFormat_;
57218       return *this;
57219     }
57220 
57221 
operator VkExternalFormatANDROID const&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57222     operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT
57223     {
57224       return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
57225     }
57226 
operator VkExternalFormatANDROID&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57227     operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
57228     {
57229       return *reinterpret_cast<VkExternalFormatANDROID*>( this );
57230     }
57231 
57232 
57233 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57234     auto operator<=>( ExternalFormatANDROID const& ) const = default;
57235 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57236     bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
57237     {
57238       return ( sType == rhs.sType )
57239           && ( pNext == rhs.pNext )
57240           && ( externalFormat == rhs.externalFormat );
57241     }
57242 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57243     bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
57244     {
57245       return !operator==( rhs );
57246     }
57247 #endif
57248 
57249 
57250 
57251   public:
57252     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
57253     void* pNext = {};
57254     uint64_t externalFormat = {};
57255 
57256   };
57257   static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
57258   static_assert( std::is_standard_layout<ExternalFormatANDROID>::value, "struct wrapper is not a standard layout!" );
57259 
57260   template <>
57261   struct CppType<StructureType, StructureType::eExternalFormatANDROID>
57262   {
57263     using Type = ExternalFormatANDROID;
57264   };
57265 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
57266 
57267   struct ExternalImageFormatProperties
57268   {
57269     static const bool allowDuplicate = false;
57270     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
57271 
57272 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57273     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
57274     : externalMemoryProperties( externalMemoryProperties_ )
57275     {}
57276 
57277     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57278 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57279     ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57280     {
57281       *this = rhs;
57282     }
57283 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57284 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57285     ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57286     {
57287       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>( &rhs );
57288       return *this;
57289     }
57290 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57291     ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57292     {
57293       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalImageFormatProperties ) );
57294       return *this;
57295     }
57296 
57297 
operator VkExternalImageFormatProperties const&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57298     operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
57299     {
57300       return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
57301     }
57302 
operator VkExternalImageFormatProperties&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57303     operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
57304     {
57305       return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
57306     }
57307 
57308 
57309 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57310     auto operator<=>( ExternalImageFormatProperties const& ) const = default;
57311 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57312     bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57313     {
57314       return ( sType == rhs.sType )
57315           && ( pNext == rhs.pNext )
57316           && ( externalMemoryProperties == rhs.externalMemoryProperties );
57317     }
57318 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57319     bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57320     {
57321       return !operator==( rhs );
57322     }
57323 #endif
57324 
57325 
57326 
57327   public:
57328     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
57329     void* pNext = {};
57330     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
57331 
57332   };
57333   static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" );
57334   static_assert( std::is_standard_layout<ExternalImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
57335 
57336   template <>
57337   struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
57338   {
57339     using Type = ExternalImageFormatProperties;
57340   };
57341   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
57342 
57343   struct ExternalMemoryBufferCreateInfo
57344   {
57345     static const bool allowDuplicate = false;
57346     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
57347 
57348 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57349     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57350     : handleTypes( handleTypes_ )
57351     {}
57352 
57353     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57354 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57355     ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57356     {
57357       *this = rhs;
57358     }
57359 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57360 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57361     ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57362     {
57363       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>( &rhs );
57364       return *this;
57365     }
57366 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57367     ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57368     {
57369       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryBufferCreateInfo ) );
57370       return *this;
57371     }
57372 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57373     ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57374     {
57375       pNext = pNext_;
57376       return *this;
57377     }
57378 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57379     ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57380     {
57381       handleTypes = handleTypes_;
57382       return *this;
57383     }
57384 
57385 
operator VkExternalMemoryBufferCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57386     operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57387     {
57388       return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
57389     }
57390 
operator VkExternalMemoryBufferCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57391     operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
57392     {
57393       return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
57394     }
57395 
57396 
57397 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57398     auto operator<=>( ExternalMemoryBufferCreateInfo const& ) const = default;
57399 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57400     bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57401     {
57402       return ( sType == rhs.sType )
57403           && ( pNext == rhs.pNext )
57404           && ( handleTypes == rhs.handleTypes );
57405     }
57406 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57407     bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57408     {
57409       return !operator==( rhs );
57410     }
57411 #endif
57412 
57413 
57414 
57415   public:
57416     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
57417     const void* pNext = {};
57418     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57419 
57420   };
57421   static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" );
57422   static_assert( std::is_standard_layout<ExternalMemoryBufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
57423 
57424   template <>
57425   struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
57426   {
57427     using Type = ExternalMemoryBufferCreateInfo;
57428   };
57429   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
57430 
57431   struct ExternalMemoryImageCreateInfo
57432   {
57433     static const bool allowDuplicate = false;
57434     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
57435 
57436 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57437     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57438     : handleTypes( handleTypes_ )
57439     {}
57440 
57441     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57442 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57443     ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57444     {
57445       *this = rhs;
57446     }
57447 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57448 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57449     ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57450     {
57451       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>( &rhs );
57452       return *this;
57453     }
57454 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57455     ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57456     {
57457       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryImageCreateInfo ) );
57458       return *this;
57459     }
57460 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57461     ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57462     {
57463       pNext = pNext_;
57464       return *this;
57465     }
57466 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57467     ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57468     {
57469       handleTypes = handleTypes_;
57470       return *this;
57471     }
57472 
57473 
operator VkExternalMemoryImageCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57474     operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57475     {
57476       return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
57477     }
57478 
operator VkExternalMemoryImageCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57479     operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
57480     {
57481       return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
57482     }
57483 
57484 
57485 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57486     auto operator<=>( ExternalMemoryImageCreateInfo const& ) const = default;
57487 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57488     bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57489     {
57490       return ( sType == rhs.sType )
57491           && ( pNext == rhs.pNext )
57492           && ( handleTypes == rhs.handleTypes );
57493     }
57494 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57495     bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57496     {
57497       return !operator==( rhs );
57498     }
57499 #endif
57500 
57501 
57502 
57503   public:
57504     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
57505     const void* pNext = {};
57506     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57507 
57508   };
57509   static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" );
57510   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
57511 
57512   template <>
57513   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
57514   {
57515     using Type = ExternalMemoryImageCreateInfo;
57516   };
57517   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
57518 
57519   struct ExternalMemoryImageCreateInfoNV
57520   {
57521     static const bool allowDuplicate = false;
57522     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
57523 
57524 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57525     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57526     : handleTypes( handleTypes_ )
57527     {}
57528 
57529     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57530 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57531     ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57532     {
57533       *this = rhs;
57534     }
57535 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57536 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57537     ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57538     {
57539       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>( &rhs );
57540       return *this;
57541     }
57542 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57543     ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57544     {
57545       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryImageCreateInfoNV ) );
57546       return *this;
57547     }
57548 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57549     ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57550     {
57551       pNext = pNext_;
57552       return *this;
57553     }
57554 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57555     ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
57556     {
57557       handleTypes = handleTypes_;
57558       return *this;
57559     }
57560 
57561 
operator VkExternalMemoryImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57562     operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
57563     {
57564       return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
57565     }
57566 
operator VkExternalMemoryImageCreateInfoNV&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57567     operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
57568     {
57569       return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
57570     }
57571 
57572 
57573 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57574     auto operator<=>( ExternalMemoryImageCreateInfoNV const& ) const = default;
57575 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57576     bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57577     {
57578       return ( sType == rhs.sType )
57579           && ( pNext == rhs.pNext )
57580           && ( handleTypes == rhs.handleTypes );
57581     }
57582 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV57583     bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57584     {
57585       return !operator==( rhs );
57586     }
57587 #endif
57588 
57589 
57590 
57591   public:
57592     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
57593     const void* pNext = {};
57594     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
57595 
57596   };
57597   static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" );
57598   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
57599 
57600   template <>
57601   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
57602   {
57603     using Type = ExternalMemoryImageCreateInfoNV;
57604   };
57605 
57606   struct FilterCubicImageViewImageFormatPropertiesEXT
57607   {
57608     static const bool allowDuplicate = false;
57609     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
57610 
57611 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57612     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {}) VULKAN_HPP_NOEXCEPT
57613     : filterCubic( filterCubic_ ), filterCubicMinmax( filterCubicMinmax_ )
57614     {}
57615 
57616     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57617 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57618     FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57619     {
57620       *this = rhs;
57621     }
57622 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57623 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57624     FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57625     {
57626       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs );
57627       return *this;
57628     }
57629 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57630     FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57631     {
57632       memcpy( static_cast<void *>( this ), &rhs, sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) );
57633       return *this;
57634     }
57635 
57636 
operator VkFilterCubicImageViewImageFormatPropertiesEXT const&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57637     operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
57638     {
57639       return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
57640     }
57641 
operator VkFilterCubicImageViewImageFormatPropertiesEXT&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57642     operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
57643     {
57644       return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
57645     }
57646 
57647 
57648 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57649     auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const& ) const = default;
57650 #else
operator ==VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57651     bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57652     {
57653       return ( sType == rhs.sType )
57654           && ( pNext == rhs.pNext )
57655           && ( filterCubic == rhs.filterCubic )
57656           && ( filterCubicMinmax == rhs.filterCubicMinmax );
57657     }
57658 
operator !=VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT57659     bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
57660     {
57661       return !operator==( rhs );
57662     }
57663 #endif
57664 
57665 
57666 
57667   public:
57668     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
57669     void* pNext = {};
57670     VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
57671     VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
57672 
57673   };
57674   static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" );
57675   static_assert( std::is_standard_layout<FilterCubicImageViewImageFormatPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
57676 
57677   template <>
57678   struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
57679   {
57680     using Type = FilterCubicImageViewImageFormatPropertiesEXT;
57681   };
57682 
57683   struct FramebufferAttachmentImageInfo
57684   {
57685     static const bool allowDuplicate = false;
57686     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
57687 
57688 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57689     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
57690     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
57691     {}
57692 
57693     VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57694 
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57695     FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57696     {
57697       *this = rhs;
57698     }
57699 
57700 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57701     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_ )
57702     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
57703     {}
57704 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
57705 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57706 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57707     FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57708     {
57709       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>( &rhs );
57710       return *this;
57711     }
57712 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57713     FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57714     {
57715       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferAttachmentImageInfo ) );
57716       return *this;
57717     }
57718 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57719     FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57720     {
57721       pNext = pNext_;
57722       return *this;
57723     }
57724 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57725     FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
57726     {
57727       flags = flags_;
57728       return *this;
57729     }
57730 
setUsageVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57731     FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
57732     {
57733       usage = usage_;
57734       return *this;
57735     }
57736 
setWidthVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57737     FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
57738     {
57739       width = width_;
57740       return *this;
57741     }
57742 
setHeightVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57743     FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
57744     {
57745       height = height_;
57746       return *this;
57747     }
57748 
setLayerCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57749     FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
57750     {
57751       layerCount = layerCount_;
57752       return *this;
57753     }
57754 
setViewFormatCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57755     FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
57756     {
57757       viewFormatCount = viewFormatCount_;
57758       return *this;
57759     }
57760 
setPViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57761     FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
57762     {
57763       pViewFormats = pViewFormats_;
57764       return *this;
57765     }
57766 
57767 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57768     FramebufferAttachmentImageInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
57769     {
57770       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
57771       pViewFormats = viewFormats_.data();
57772       return *this;
57773     }
57774 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
57775 
57776 
operator VkFramebufferAttachmentImageInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57777     operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT
57778     {
57779       return *reinterpret_cast<const VkFramebufferAttachmentImageInfo*>( this );
57780     }
57781 
operator VkFramebufferAttachmentImageInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57782     operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
57783     {
57784       return *reinterpret_cast<VkFramebufferAttachmentImageInfo*>( this );
57785     }
57786 
57787 
57788 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57789     auto operator<=>( FramebufferAttachmentImageInfo const& ) const = default;
57790 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57791     bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57792     {
57793       return ( sType == rhs.sType )
57794           && ( pNext == rhs.pNext )
57795           && ( flags == rhs.flags )
57796           && ( usage == rhs.usage )
57797           && ( width == rhs.width )
57798           && ( height == rhs.height )
57799           && ( layerCount == rhs.layerCount )
57800           && ( viewFormatCount == rhs.viewFormatCount )
57801           && ( pViewFormats == rhs.pViewFormats );
57802     }
57803 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo57804     bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57805     {
57806       return !operator==( rhs );
57807     }
57808 #endif
57809 
57810 
57811 
57812   public:
57813     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
57814     const void* pNext = {};
57815     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
57816     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
57817     uint32_t width = {};
57818     uint32_t height = {};
57819     uint32_t layerCount = {};
57820     uint32_t viewFormatCount = {};
57821     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
57822 
57823   };
57824   static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" );
57825   static_assert( std::is_standard_layout<FramebufferAttachmentImageInfo>::value, "struct wrapper is not a standard layout!" );
57826 
57827   template <>
57828   struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
57829   {
57830     using Type = FramebufferAttachmentImageInfo;
57831   };
57832   using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
57833 
57834   struct FramebufferAttachmentsCreateInfo
57835   {
57836     static const bool allowDuplicate = false;
57837     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
57838 
57839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57840     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo(uint32_t attachmentImageInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {}) VULKAN_HPP_NOEXCEPT
57841     : attachmentImageInfoCount( attachmentImageInfoCount_ ), pAttachmentImageInfos( pAttachmentImageInfos_ )
57842     {}
57843 
57844     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57845 
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57846     FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57847     {
57848       *this = rhs;
57849     }
57850 
57851 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57852     FramebufferAttachmentsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ )
57853     : attachmentImageInfoCount( static_cast<uint32_t>( attachmentImageInfos_.size() ) ), pAttachmentImageInfos( attachmentImageInfos_.data() )
57854     {}
57855 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
57856 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57857 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57858     FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57859     {
57860       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>( &rhs );
57861       return *this;
57862     }
57863 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57864     FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57865     {
57866       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferAttachmentsCreateInfo ) );
57867       return *this;
57868     }
57869 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57870     FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57871     {
57872       pNext = pNext_;
57873       return *this;
57874     }
57875 
setAttachmentImageInfoCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57876     FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
57877     {
57878       attachmentImageInfoCount = attachmentImageInfoCount_;
57879       return *this;
57880     }
57881 
setPAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57882     FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
57883     {
57884       pAttachmentImageInfos = pAttachmentImageInfos_;
57885       return *this;
57886     }
57887 
57888 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57889     FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
57890     {
57891       attachmentImageInfoCount = static_cast<uint32_t>( attachmentImageInfos_.size() );
57892       pAttachmentImageInfos = attachmentImageInfos_.data();
57893       return *this;
57894     }
57895 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
57896 
57897 
operator VkFramebufferAttachmentsCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57898     operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57899     {
57900       return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>( this );
57901     }
57902 
operator VkFramebufferAttachmentsCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57903     operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
57904     {
57905       return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>( this );
57906     }
57907 
57908 
57909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57910     auto operator<=>( FramebufferAttachmentsCreateInfo const& ) const = default;
57911 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57912     bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57913     {
57914       return ( sType == rhs.sType )
57915           && ( pNext == rhs.pNext )
57916           && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
57917           && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
57918     }
57919 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo57920     bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57921     {
57922       return !operator==( rhs );
57923     }
57924 #endif
57925 
57926 
57927 
57928   public:
57929     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
57930     const void* pNext = {};
57931     uint32_t attachmentImageInfoCount = {};
57932     const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {};
57933 
57934   };
57935   static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" );
57936   static_assert( std::is_standard_layout<FramebufferAttachmentsCreateInfo>::value, "struct wrapper is not a standard layout!" );
57937 
57938   template <>
57939   struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
57940   {
57941     using Type = FramebufferAttachmentsCreateInfo;
57942   };
57943   using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
57944 
57945   struct GraphicsShaderGroupCreateInfoNV
57946   {
57947     static const bool allowDuplicate = false;
57948     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
57949 
57950 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57951     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
57952     : stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
57953     {}
57954 
57955     VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57956 
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57957     GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57958     {
57959       *this = rhs;
57960     }
57961 
57962 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57963     GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {} )
57964     : stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
57965     {}
57966 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
57967 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57968 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57969     GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57970     {
57971       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>( &rhs );
57972       return *this;
57973     }
57974 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57975     GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57976     {
57977       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsShaderGroupCreateInfoNV ) );
57978       return *this;
57979     }
57980 
setPNextVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57981     GraphicsShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57982     {
57983       pNext = pNext_;
57984       return *this;
57985     }
57986 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57987     GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
57988     {
57989       stageCount = stageCount_;
57990       return *this;
57991     }
57992 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV57993     GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
57994     {
57995       pStages = pStages_;
57996       return *this;
57997     }
57998 
57999 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58000     GraphicsShaderGroupCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
58001     {
58002       stageCount = static_cast<uint32_t>( stages_.size() );
58003       pStages = stages_.data();
58004       return *this;
58005     }
58006 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58007 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58008     GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
58009     {
58010       pVertexInputState = pVertexInputState_;
58011       return *this;
58012     }
58013 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58014     GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
58015     {
58016       pTessellationState = pTessellationState_;
58017       return *this;
58018     }
58019 
58020 
operator VkGraphicsShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58021     operator VkGraphicsShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58022     {
58023       return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV*>( this );
58024     }
58025 
operator VkGraphicsShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58026     operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58027     {
58028       return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV*>( this );
58029     }
58030 
58031 
58032 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58033     auto operator<=>( GraphicsShaderGroupCreateInfoNV const& ) const = default;
58034 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58035     bool operator==( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58036     {
58037       return ( sType == rhs.sType )
58038           && ( pNext == rhs.pNext )
58039           && ( stageCount == rhs.stageCount )
58040           && ( pStages == rhs.pStages )
58041           && ( pVertexInputState == rhs.pVertexInputState )
58042           && ( pTessellationState == rhs.pTessellationState );
58043     }
58044 
operator !=VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58045     bool operator!=( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58046     {
58047       return !operator==( rhs );
58048     }
58049 #endif
58050 
58051 
58052 
58053   public:
58054     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
58055     const void* pNext = {};
58056     uint32_t stageCount = {};
58057     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
58058     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
58059     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
58060 
58061   };
58062   static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
58063   static_assert( std::is_standard_layout<GraphicsShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58064 
58065   template <>
58066   struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
58067   {
58068     using Type = GraphicsShaderGroupCreateInfoNV;
58069   };
58070 
58071   struct GraphicsPipelineShaderGroupsCreateInfoNV
58072   {
58073     static const bool allowDuplicate = false;
58074     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
58075 
58076 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58077     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
58078     : groupCount( groupCount_ ), pGroups( pGroups_ ), pipelineCount( pipelineCount_ ), pPipelines( pPipelines_ )
58079     {}
58080 
58081     VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58082 
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58083     GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58084     {
58085       *this = rhs;
58086     }
58087 
58088 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58089     GraphicsPipelineShaderGroupsCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ = {} )
58090     : groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), pipelineCount( static_cast<uint32_t>( pipelines_.size() ) ), pPipelines( pipelines_.data() )
58091     {}
58092 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58093 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58094 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58095     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58096     {
58097       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs );
58098       return *this;
58099     }
58100 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58101     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58102     {
58103       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) );
58104       return *this;
58105     }
58106 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58107     GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58108     {
58109       pNext = pNext_;
58110       return *this;
58111     }
58112 
setGroupCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58113     GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
58114     {
58115       groupCount = groupCount_;
58116       return *this;
58117     }
58118 
setPGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58119     GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
58120     {
58121       pGroups = pGroups_;
58122       return *this;
58123     }
58124 
58125 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58126     GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
58127     {
58128       groupCount = static_cast<uint32_t>( groups_.size() );
58129       pGroups = groups_.data();
58130       return *this;
58131     }
58132 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58133 
setPipelineCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58134     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
58135     {
58136       pipelineCount = pipelineCount_;
58137       return *this;
58138     }
58139 
setPPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58140     GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ ) VULKAN_HPP_NOEXCEPT
58141     {
58142       pPipelines = pPipelines_;
58143       return *this;
58144     }
58145 
58146 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58147     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ ) VULKAN_HPP_NOEXCEPT
58148     {
58149       pipelineCount = static_cast<uint32_t>( pipelines_.size() );
58150       pPipelines = pipelines_.data();
58151       return *this;
58152     }
58153 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58154 
58155 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58156     operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58157     {
58158       return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
58159     }
58160 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58161     operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58162     {
58163       return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
58164     }
58165 
58166 
58167 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58168     auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const& ) const = default;
58169 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58170     bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58171     {
58172       return ( sType == rhs.sType )
58173           && ( pNext == rhs.pNext )
58174           && ( groupCount == rhs.groupCount )
58175           && ( pGroups == rhs.pGroups )
58176           && ( pipelineCount == rhs.pipelineCount )
58177           && ( pPipelines == rhs.pPipelines );
58178     }
58179 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58180     bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58181     {
58182       return !operator==( rhs );
58183     }
58184 #endif
58185 
58186 
58187 
58188   public:
58189     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
58190     const void* pNext = {};
58191     uint32_t groupCount = {};
58192     const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups = {};
58193     uint32_t pipelineCount = {};
58194     const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines = {};
58195 
58196   };
58197   static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), "struct and wrapper have different size!" );
58198   static_assert( std::is_standard_layout<GraphicsPipelineShaderGroupsCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58199 
58200   template <>
58201   struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
58202   {
58203     using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
58204   };
58205 
58206   struct HeadlessSurfaceCreateInfoEXT
58207   {
58208     static const bool allowDuplicate = false;
58209     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
58210 
58211 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58212     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
58213     : flags( flags_ )
58214     {}
58215 
58216     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58217 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58218     HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58219     {
58220       *this = rhs;
58221     }
58222 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58223 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58224     HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58225     {
58226       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>( &rhs );
58227       return *this;
58228     }
58229 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58230     HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58231     {
58232       memcpy( static_cast<void *>( this ), &rhs, sizeof( HeadlessSurfaceCreateInfoEXT ) );
58233       return *this;
58234     }
58235 
setPNextVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58236     HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58237     {
58238       pNext = pNext_;
58239       return *this;
58240     }
58241 
setFlagsVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58242     HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
58243     {
58244       flags = flags_;
58245       return *this;
58246     }
58247 
58248 
operator VkHeadlessSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58249     operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
58250     {
58251       return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
58252     }
58253 
operator VkHeadlessSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58254     operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
58255     {
58256       return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
58257     }
58258 
58259 
58260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58261     auto operator<=>( HeadlessSurfaceCreateInfoEXT const& ) const = default;
58262 #else
operator ==VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58263     bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58264     {
58265       return ( sType == rhs.sType )
58266           && ( pNext == rhs.pNext )
58267           && ( flags == rhs.flags );
58268     }
58269 
operator !=VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58270     bool operator!=( HeadlessSurfaceCreateInfoEXT 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::eHeadlessSurfaceCreateInfoEXT;
58280     const void* pNext = {};
58281     VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
58282 
58283   };
58284   static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
58285   static_assert( std::is_standard_layout<HeadlessSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
58286 
58287   template <>
58288   struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
58289   {
58290     using Type = HeadlessSurfaceCreateInfoEXT;
58291   };
58292 
58293 #ifdef VK_USE_PLATFORM_IOS_MVK
58294   struct IOSSurfaceCreateInfoMVK
58295   {
58296     static const bool allowDuplicate = false;
58297     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
58298 
58299 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58300     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
58301     : flags( flags_ ), pView( pView_ )
58302     {}
58303 
58304     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58305 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58306     IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58307     {
58308       *this = rhs;
58309     }
58310 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58311 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58312     IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58313     {
58314       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>( &rhs );
58315       return *this;
58316     }
58317 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58318     IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58319     {
58320       memcpy( static_cast<void *>( this ), &rhs, sizeof( IOSSurfaceCreateInfoMVK ) );
58321       return *this;
58322     }
58323 
setPNextVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58324     IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58325     {
58326       pNext = pNext_;
58327       return *this;
58328     }
58329 
setFlagsVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58330     IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
58331     {
58332       flags = flags_;
58333       return *this;
58334     }
58335 
setPViewVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58336     IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
58337     {
58338       pView = pView_;
58339       return *this;
58340     }
58341 
58342 
operator VkIOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58343     operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
58344     {
58345       return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
58346     }
58347 
operator VkIOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58348     operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
58349     {
58350       return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
58351     }
58352 
58353 
58354 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58355     auto operator<=>( IOSSurfaceCreateInfoMVK const& ) const = default;
58356 #else
operator ==VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58357     bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
58358     {
58359       return ( sType == rhs.sType )
58360           && ( pNext == rhs.pNext )
58361           && ( flags == rhs.flags )
58362           && ( pView == rhs.pView );
58363     }
58364 
operator !=VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58365     bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
58366     {
58367       return !operator==( rhs );
58368     }
58369 #endif
58370 
58371 
58372 
58373   public:
58374     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
58375     const void* pNext = {};
58376     VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
58377     const void* pView = {};
58378 
58379   };
58380   static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
58381   static_assert( std::is_standard_layout<IOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
58382 
58383   template <>
58384   struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
58385   {
58386     using Type = IOSSurfaceCreateInfoMVK;
58387   };
58388 #endif /*VK_USE_PLATFORM_IOS_MVK*/
58389 
58390   struct ImageDrmFormatModifierExplicitCreateInfoEXT
58391   {
58392     static const bool allowDuplicate = false;
58393     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
58394 
58395 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58396     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {}) VULKAN_HPP_NOEXCEPT
58397     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), pPlaneLayouts( pPlaneLayouts_ )
58398     {}
58399 
58400     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58401 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58402     ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58403     {
58404       *this = rhs;
58405     }
58406 
58407 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58408     ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ )
58409     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( static_cast<uint32_t>( planeLayouts_.size() ) ), pPlaneLayouts( planeLayouts_.data() )
58410     {}
58411 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58412 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58413 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58414     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58415     {
58416       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs );
58417       return *this;
58418     }
58419 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58420     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58421     {
58422       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) );
58423       return *this;
58424     }
58425 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58426     ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58427     {
58428       pNext = pNext_;
58429       return *this;
58430     }
58431 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58432     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
58433     {
58434       drmFormatModifier = drmFormatModifier_;
58435       return *this;
58436     }
58437 
setDrmFormatModifierPlaneCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58438     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
58439     {
58440       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
58441       return *this;
58442     }
58443 
setPPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58444     ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
58445     {
58446       pPlaneLayouts = pPlaneLayouts_;
58447       return *this;
58448     }
58449 
58450 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58451     ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT
58452     {
58453       drmFormatModifierPlaneCount = static_cast<uint32_t>( planeLayouts_.size() );
58454       pPlaneLayouts = planeLayouts_.data();
58455       return *this;
58456     }
58457 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58458 
58459 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58460     operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
58461     {
58462       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
58463     }
58464 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58465     operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
58466     {
58467       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
58468     }
58469 
58470 
58471 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58472     auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const& ) const = default;
58473 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58474     bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58475     {
58476       return ( sType == rhs.sType )
58477           && ( pNext == rhs.pNext )
58478           && ( drmFormatModifier == rhs.drmFormatModifier )
58479           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
58480           && ( pPlaneLayouts == rhs.pPlaneLayouts );
58481     }
58482 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT58483     bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58484     {
58485       return !operator==( rhs );
58486     }
58487 #endif
58488 
58489 
58490 
58491   public:
58492     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
58493     const void* pNext = {};
58494     uint64_t drmFormatModifier = {};
58495     uint32_t drmFormatModifierPlaneCount = {};
58496     const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {};
58497 
58498   };
58499   static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" );
58500   static_assert( std::is_standard_layout<ImageDrmFormatModifierExplicitCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
58501 
58502   template <>
58503   struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
58504   {
58505     using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
58506   };
58507 
58508   struct ImageDrmFormatModifierListCreateInfoEXT
58509   {
58510     static const bool allowDuplicate = false;
58511     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
58512 
58513 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58514     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT(uint32_t drmFormatModifierCount_ = {}, const uint64_t* pDrmFormatModifiers_ = {}) VULKAN_HPP_NOEXCEPT
58515     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifiers( pDrmFormatModifiers_ )
58516     {}
58517 
58518     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58519 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58520     ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58521     {
58522       *this = rhs;
58523     }
58524 
58525 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58526     ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ )
58527     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() )
58528     {}
58529 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58530 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58531 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58532     ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58533     {
58534       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs );
58535       return *this;
58536     }
58537 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58538     ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58539     {
58540       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierListCreateInfoEXT ) );
58541       return *this;
58542     }
58543 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58544     ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58545     {
58546       pNext = pNext_;
58547       return *this;
58548     }
58549 
setDrmFormatModifierCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58550     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
58551     {
58552       drmFormatModifierCount = drmFormatModifierCount_;
58553       return *this;
58554     }
58555 
setPDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58556     ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
58557     {
58558       pDrmFormatModifiers = pDrmFormatModifiers_;
58559       return *this;
58560     }
58561 
58562 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58563     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
58564     {
58565       drmFormatModifierCount = static_cast<uint32_t>( drmFormatModifiers_.size() );
58566       pDrmFormatModifiers = drmFormatModifiers_.data();
58567       return *this;
58568     }
58569 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58570 
58571 
operator VkImageDrmFormatModifierListCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58572     operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
58573     {
58574       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
58575     }
58576 
operator VkImageDrmFormatModifierListCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58577     operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
58578     {
58579       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
58580     }
58581 
58582 
58583 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58584     auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const& ) const = default;
58585 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58586     bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58587     {
58588       return ( sType == rhs.sType )
58589           && ( pNext == rhs.pNext )
58590           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
58591           && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
58592     }
58593 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT58594     bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58595     {
58596       return !operator==( rhs );
58597     }
58598 #endif
58599 
58600 
58601 
58602   public:
58603     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
58604     const void* pNext = {};
58605     uint32_t drmFormatModifierCount = {};
58606     const uint64_t* pDrmFormatModifiers = {};
58607 
58608   };
58609   static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" );
58610   static_assert( std::is_standard_layout<ImageDrmFormatModifierListCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
58611 
58612   template <>
58613   struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
58614   {
58615     using Type = ImageDrmFormatModifierListCreateInfoEXT;
58616   };
58617 
58618   struct ImageFormatListCreateInfo
58619   {
58620     static const bool allowDuplicate = false;
58621     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
58622 
58623 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58624     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo(uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT
58625     : viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
58626     {}
58627 
58628     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58629 
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58630     ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58631     {
58632       *this = rhs;
58633     }
58634 
58635 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58636     ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ )
58637     : viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
58638     {}
58639 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58640 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58641 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58642     ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58643     {
58644       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>( &rhs );
58645       return *this;
58646     }
58647 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58648     ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58649     {
58650       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatListCreateInfo ) );
58651       return *this;
58652     }
58653 
setPNextVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58654     ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58655     {
58656       pNext = pNext_;
58657       return *this;
58658     }
58659 
setViewFormatCountVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58660     ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
58661     {
58662       viewFormatCount = viewFormatCount_;
58663       return *this;
58664     }
58665 
setPViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58666     ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
58667     {
58668       pViewFormats = pViewFormats_;
58669       return *this;
58670     }
58671 
58672 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58673     ImageFormatListCreateInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
58674     {
58675       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
58676       pViewFormats = viewFormats_.data();
58677       return *this;
58678     }
58679 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58680 
58681 
operator VkImageFormatListCreateInfo const&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58682     operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58683     {
58684       return *reinterpret_cast<const VkImageFormatListCreateInfo*>( this );
58685     }
58686 
operator VkImageFormatListCreateInfo&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58687     operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
58688     {
58689       return *reinterpret_cast<VkImageFormatListCreateInfo*>( this );
58690     }
58691 
58692 
58693 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58694     auto operator<=>( ImageFormatListCreateInfo const& ) const = default;
58695 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58696     bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58697     {
58698       return ( sType == rhs.sType )
58699           && ( pNext == rhs.pNext )
58700           && ( viewFormatCount == rhs.viewFormatCount )
58701           && ( pViewFormats == rhs.pViewFormats );
58702     }
58703 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo58704     bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58705     {
58706       return !operator==( rhs );
58707     }
58708 #endif
58709 
58710 
58711 
58712   public:
58713     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
58714     const void* pNext = {};
58715     uint32_t viewFormatCount = {};
58716     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
58717 
58718   };
58719   static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" );
58720   static_assert( std::is_standard_layout<ImageFormatListCreateInfo>::value, "struct wrapper is not a standard layout!" );
58721 
58722   template <>
58723   struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
58724   {
58725     using Type = ImageFormatListCreateInfo;
58726   };
58727   using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
58728 
58729 #ifdef VK_USE_PLATFORM_FUCHSIA
58730   struct ImagePipeSurfaceCreateInfoFUCHSIA
58731   {
58732     static const bool allowDuplicate = false;
58733     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
58734 
58735 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58736     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, zx_handle_t imagePipeHandle_ = {}) VULKAN_HPP_NOEXCEPT
58737     : flags( flags_ ), imagePipeHandle( imagePipeHandle_ )
58738     {}
58739 
58740     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58741 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58742     ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
58743     {
58744       *this = rhs;
58745     }
58746 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58747 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58748     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
58749     {
58750       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs );
58751       return *this;
58752     }
58753 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58754     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
58755     {
58756       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) );
58757       return *this;
58758     }
58759 
setPNextVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58760     ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58761     {
58762       pNext = pNext_;
58763       return *this;
58764     }
58765 
setFlagsVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58766     ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
58767     {
58768       flags = flags_;
58769       return *this;
58770     }
58771 
setImagePipeHandleVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58772     ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
58773     {
58774       imagePipeHandle = imagePipeHandle_;
58775       return *this;
58776     }
58777 
58778 
operator VkImagePipeSurfaceCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58779     operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT
58780     {
58781       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
58782     }
58783 
operator VkImagePipeSurfaceCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58784     operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
58785     {
58786       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
58787     }
58788 
58789 
58790 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58791     auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const& ) const = default;
58792 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58793     bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
58794     {
58795       return ( sType == rhs.sType )
58796           && ( pNext == rhs.pNext )
58797           && ( flags == rhs.flags )
58798           && ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 );
58799     }
58800 
operator !=VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA58801     bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
58802     {
58803       return !operator==( rhs );
58804     }
58805 #endif
58806 
58807 
58808 
58809   public:
58810     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
58811     const void* pNext = {};
58812     VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
58813     zx_handle_t imagePipeHandle = {};
58814 
58815   };
58816   static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" );
58817   static_assert( std::is_standard_layout<ImagePipeSurfaceCreateInfoFUCHSIA>::value, "struct wrapper is not a standard layout!" );
58818 
58819   template <>
58820   struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
58821   {
58822     using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
58823   };
58824 #endif /*VK_USE_PLATFORM_FUCHSIA*/
58825 
58826   struct ImagePlaneMemoryRequirementsInfo
58827   {
58828     static const bool allowDuplicate = false;
58829     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
58830 
58831 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58832     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
58833     : planeAspect( planeAspect_ )
58834     {}
58835 
58836     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58837 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58838     ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58839     {
58840       *this = rhs;
58841     }
58842 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58843 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58844     ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58845     {
58846       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>( &rhs );
58847       return *this;
58848     }
58849 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58850     ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58851     {
58852       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImagePlaneMemoryRequirementsInfo ) );
58853       return *this;
58854     }
58855 
setPNextVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58856     ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58857     {
58858       pNext = pNext_;
58859       return *this;
58860     }
58861 
setPlaneAspectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58862     ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
58863     {
58864       planeAspect = planeAspect_;
58865       return *this;
58866     }
58867 
58868 
operator VkImagePlaneMemoryRequirementsInfo const&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58869     operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT
58870     {
58871       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
58872     }
58873 
operator VkImagePlaneMemoryRequirementsInfo&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58874     operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
58875     {
58876       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
58877     }
58878 
58879 
58880 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58881     auto operator<=>( ImagePlaneMemoryRequirementsInfo const& ) const = default;
58882 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58883     bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58884     {
58885       return ( sType == rhs.sType )
58886           && ( pNext == rhs.pNext )
58887           && ( planeAspect == rhs.planeAspect );
58888     }
58889 
operator !=VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo58890     bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58891     {
58892       return !operator==( rhs );
58893     }
58894 #endif
58895 
58896 
58897 
58898   public:
58899     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
58900     const void* pNext = {};
58901     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
58902 
58903   };
58904   static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" );
58905   static_assert( std::is_standard_layout<ImagePlaneMemoryRequirementsInfo>::value, "struct wrapper is not a standard layout!" );
58906 
58907   template <>
58908   struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
58909   {
58910     using Type = ImagePlaneMemoryRequirementsInfo;
58911   };
58912   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
58913 
58914   struct ImageStencilUsageCreateInfo
58915   {
58916     static const bool allowDuplicate = false;
58917     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
58918 
58919 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58920     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {}) VULKAN_HPP_NOEXCEPT
58921     : stencilUsage( stencilUsage_ )
58922     {}
58923 
58924     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58925 
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58926     ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58927     {
58928       *this = rhs;
58929     }
58930 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58931 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58932     ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58933     {
58934       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>( &rhs );
58935       return *this;
58936     }
58937 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58938     ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58939     {
58940       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageStencilUsageCreateInfo ) );
58941       return *this;
58942     }
58943 
setPNextVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58944     ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58945     {
58946       pNext = pNext_;
58947       return *this;
58948     }
58949 
setStencilUsageVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58950     ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
58951     {
58952       stencilUsage = stencilUsage_;
58953       return *this;
58954     }
58955 
58956 
operator VkImageStencilUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58957     operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58958     {
58959       return *reinterpret_cast<const VkImageStencilUsageCreateInfo*>( this );
58960     }
58961 
operator VkImageStencilUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58962     operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
58963     {
58964       return *reinterpret_cast<VkImageStencilUsageCreateInfo*>( this );
58965     }
58966 
58967 
58968 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58969     auto operator<=>( ImageStencilUsageCreateInfo const& ) const = default;
58970 #else
operator ==VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58971     bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58972     {
58973       return ( sType == rhs.sType )
58974           && ( pNext == rhs.pNext )
58975           && ( stencilUsage == rhs.stencilUsage );
58976     }
58977 
operator !=VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo58978     bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58979     {
58980       return !operator==( rhs );
58981     }
58982 #endif
58983 
58984 
58985 
58986   public:
58987     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
58988     const void* pNext = {};
58989     VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
58990 
58991   };
58992   static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" );
58993   static_assert( std::is_standard_layout<ImageStencilUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
58994 
58995   template <>
58996   struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
58997   {
58998     using Type = ImageStencilUsageCreateInfo;
58999   };
59000   using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
59001 
59002   struct ImageSwapchainCreateInfoKHR
59003   {
59004     static const bool allowDuplicate = false;
59005     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
59006 
59007 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59008     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}) VULKAN_HPP_NOEXCEPT
59009     : swapchain( swapchain_ )
59010     {}
59011 
59012     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59013 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59014     ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59015     {
59016       *this = rhs;
59017     }
59018 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59019 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59020     ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59021     {
59022       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>( &rhs );
59023       return *this;
59024     }
59025 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59026     ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59027     {
59028       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSwapchainCreateInfoKHR ) );
59029       return *this;
59030     }
59031 
setPNextVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59032     ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59033     {
59034       pNext = pNext_;
59035       return *this;
59036     }
59037 
setSwapchainVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59038     ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
59039     {
59040       swapchain = swapchain_;
59041       return *this;
59042     }
59043 
59044 
operator VkImageSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59045     operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
59046     {
59047       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
59048     }
59049 
operator VkImageSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59050     operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
59051     {
59052       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
59053     }
59054 
59055 
59056 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59057     auto operator<=>( ImageSwapchainCreateInfoKHR const& ) const = default;
59058 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59059     bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59060     {
59061       return ( sType == rhs.sType )
59062           && ( pNext == rhs.pNext )
59063           && ( swapchain == rhs.swapchain );
59064     }
59065 
operator !=VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59066     bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59067     {
59068       return !operator==( rhs );
59069     }
59070 #endif
59071 
59072 
59073 
59074   public:
59075     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
59076     const void* pNext = {};
59077     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
59078 
59079   };
59080   static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
59081   static_assert( std::is_standard_layout<ImageSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
59082 
59083   template <>
59084   struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
59085   {
59086     using Type = ImageSwapchainCreateInfoKHR;
59087   };
59088 
59089   struct ImageViewASTCDecodeModeEXT
59090   {
59091     static const bool allowDuplicate = false;
59092     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
59093 
59094 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59095     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT(VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
59096     : decodeMode( decodeMode_ )
59097     {}
59098 
59099     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59100 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59101     ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59102     {
59103       *this = rhs;
59104     }
59105 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59106 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59107     ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59108     {
59109       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>( &rhs );
59110       return *this;
59111     }
59112 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59113     ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59114     {
59115       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewASTCDecodeModeEXT ) );
59116       return *this;
59117     }
59118 
setPNextVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59119     ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59120     {
59121       pNext = pNext_;
59122       return *this;
59123     }
59124 
setDecodeModeVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59125     ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
59126     {
59127       decodeMode = decodeMode_;
59128       return *this;
59129     }
59130 
59131 
operator VkImageViewASTCDecodeModeEXT const&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59132     operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT
59133     {
59134       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
59135     }
59136 
operator VkImageViewASTCDecodeModeEXT&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59137     operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
59138     {
59139       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
59140     }
59141 
59142 
59143 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59144     auto operator<=>( ImageViewASTCDecodeModeEXT const& ) const = default;
59145 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59146     bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59147     {
59148       return ( sType == rhs.sType )
59149           && ( pNext == rhs.pNext )
59150           && ( decodeMode == rhs.decodeMode );
59151     }
59152 
operator !=VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59153     bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59154     {
59155       return !operator==( rhs );
59156     }
59157 #endif
59158 
59159 
59160 
59161   public:
59162     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
59163     const void* pNext = {};
59164     VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
59165 
59166   };
59167   static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" );
59168   static_assert( std::is_standard_layout<ImageViewASTCDecodeModeEXT>::value, "struct wrapper is not a standard layout!" );
59169 
59170   template <>
59171   struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
59172   {
59173     using Type = ImageViewASTCDecodeModeEXT;
59174   };
59175 
59176   struct ImageViewUsageCreateInfo
59177   {
59178     static const bool allowDuplicate = false;
59179     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
59180 
59181 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59182     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}) VULKAN_HPP_NOEXCEPT
59183     : usage( usage_ )
59184     {}
59185 
59186     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59187 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59188     ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59189     {
59190       *this = rhs;
59191     }
59192 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59193 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59194     ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59195     {
59196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>( &rhs );
59197       return *this;
59198     }
59199 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59200     ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59201     {
59202       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewUsageCreateInfo ) );
59203       return *this;
59204     }
59205 
setPNextVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59206     ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59207     {
59208       pNext = pNext_;
59209       return *this;
59210     }
59211 
setUsageVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59212     ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
59213     {
59214       usage = usage_;
59215       return *this;
59216     }
59217 
59218 
operator VkImageViewUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59219     operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59220     {
59221       return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
59222     }
59223 
operator VkImageViewUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59224     operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
59225     {
59226       return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
59227     }
59228 
59229 
59230 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59231     auto operator<=>( ImageViewUsageCreateInfo const& ) const = default;
59232 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59233     bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59234     {
59235       return ( sType == rhs.sType )
59236           && ( pNext == rhs.pNext )
59237           && ( usage == rhs.usage );
59238     }
59239 
operator !=VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59240     bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59241     {
59242       return !operator==( rhs );
59243     }
59244 #endif
59245 
59246 
59247 
59248   public:
59249     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
59250     const void* pNext = {};
59251     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
59252 
59253   };
59254   static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" );
59255   static_assert( std::is_standard_layout<ImageViewUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
59256 
59257   template <>
59258   struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
59259   {
59260     using Type = ImageViewUsageCreateInfo;
59261   };
59262   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
59263 
59264 #ifdef VK_USE_PLATFORM_ANDROID_KHR
59265   struct ImportAndroidHardwareBufferInfoANDROID
59266   {
59267     static const bool allowDuplicate = false;
59268     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
59269 
59270 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59271     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID(struct AHardwareBuffer* buffer_ = {}) VULKAN_HPP_NOEXCEPT
59272     : buffer( buffer_ )
59273     {}
59274 
59275     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59276 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59277     ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59278     {
59279       *this = rhs;
59280     }
59281 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59282 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59283     ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59284     {
59285       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>( &rhs );
59286       return *this;
59287     }
59288 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59289     ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59290     {
59291       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportAndroidHardwareBufferInfoANDROID ) );
59292       return *this;
59293     }
59294 
setPNextVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59295     ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59296     {
59297       pNext = pNext_;
59298       return *this;
59299     }
59300 
setBufferVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59301     ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT
59302     {
59303       buffer = buffer_;
59304       return *this;
59305     }
59306 
59307 
operator VkImportAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59308     operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
59309     {
59310       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
59311     }
59312 
operator VkImportAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59313     operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
59314     {
59315       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
59316     }
59317 
59318 
59319 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59320     auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const& ) const = default;
59321 #else
operator ==VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59322     bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
59323     {
59324       return ( sType == rhs.sType )
59325           && ( pNext == rhs.pNext )
59326           && ( buffer == rhs.buffer );
59327     }
59328 
operator !=VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59329     bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
59330     {
59331       return !operator==( rhs );
59332     }
59333 #endif
59334 
59335 
59336 
59337   public:
59338     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
59339     const void* pNext = {};
59340     struct AHardwareBuffer* buffer = {};
59341 
59342   };
59343   static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
59344   static_assert( std::is_standard_layout<ImportAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
59345 
59346   template <>
59347   struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
59348   {
59349     using Type = ImportAndroidHardwareBufferInfoANDROID;
59350   };
59351 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
59352 
59353   struct ImportMemoryFdInfoKHR
59354   {
59355     static const bool allowDuplicate = false;
59356     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
59357 
59358 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59359     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT
59360     : handleType( handleType_ ), fd( fd_ )
59361     {}
59362 
59363     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59364 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59365     ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59366     {
59367       *this = rhs;
59368     }
59369 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59370 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59371     ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59372     {
59373       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>( &rhs );
59374       return *this;
59375     }
59376 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59377     ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59378     {
59379       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryFdInfoKHR ) );
59380       return *this;
59381     }
59382 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59383     ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59384     {
59385       pNext = pNext_;
59386       return *this;
59387     }
59388 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59389     ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59390     {
59391       handleType = handleType_;
59392       return *this;
59393     }
59394 
setFdVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59395     ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
59396     {
59397       fd = fd_;
59398       return *this;
59399     }
59400 
59401 
operator VkImportMemoryFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59402     operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
59403     {
59404       return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
59405     }
59406 
operator VkImportMemoryFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59407     operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
59408     {
59409       return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
59410     }
59411 
59412 
59413 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59414     auto operator<=>( ImportMemoryFdInfoKHR const& ) const = default;
59415 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59416     bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59417     {
59418       return ( sType == rhs.sType )
59419           && ( pNext == rhs.pNext )
59420           && ( handleType == rhs.handleType )
59421           && ( fd == rhs.fd );
59422     }
59423 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59424     bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59425     {
59426       return !operator==( rhs );
59427     }
59428 #endif
59429 
59430 
59431 
59432   public:
59433     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
59434     const void* pNext = {};
59435     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
59436     int fd = {};
59437 
59438   };
59439   static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" );
59440   static_assert( std::is_standard_layout<ImportMemoryFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
59441 
59442   template <>
59443   struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
59444   {
59445     using Type = ImportMemoryFdInfoKHR;
59446   };
59447 
59448   struct ImportMemoryHostPointerInfoEXT
59449   {
59450     static const bool allowDuplicate = false;
59451     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
59452 
59453 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59454     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, void* pHostPointer_ = {}) VULKAN_HPP_NOEXCEPT
59455     : handleType( handleType_ ), pHostPointer( pHostPointer_ )
59456     {}
59457 
59458     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59459 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59460     ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59461     {
59462       *this = rhs;
59463     }
59464 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59465 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59466     ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59467     {
59468       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>( &rhs );
59469       return *this;
59470     }
59471 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59472     ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59473     {
59474       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryHostPointerInfoEXT ) );
59475       return *this;
59476     }
59477 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59478     ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59479     {
59480       pNext = pNext_;
59481       return *this;
59482     }
59483 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59484     ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59485     {
59486       handleType = handleType_;
59487       return *this;
59488     }
59489 
setPHostPointerVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59490     ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT
59491     {
59492       pHostPointer = pHostPointer_;
59493       return *this;
59494     }
59495 
59496 
operator VkImportMemoryHostPointerInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59497     operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
59498     {
59499       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
59500     }
59501 
operator VkImportMemoryHostPointerInfoEXT&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59502     operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
59503     {
59504       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
59505     }
59506 
59507 
59508 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59509     auto operator<=>( ImportMemoryHostPointerInfoEXT const& ) const = default;
59510 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59511     bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59512     {
59513       return ( sType == rhs.sType )
59514           && ( pNext == rhs.pNext )
59515           && ( handleType == rhs.handleType )
59516           && ( pHostPointer == rhs.pHostPointer );
59517     }
59518 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT59519     bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59520     {
59521       return !operator==( rhs );
59522     }
59523 #endif
59524 
59525 
59526 
59527   public:
59528     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
59529     const void* pNext = {};
59530     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
59531     void* pHostPointer = {};
59532 
59533   };
59534   static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" );
59535   static_assert( std::is_standard_layout<ImportMemoryHostPointerInfoEXT>::value, "struct wrapper is not a standard layout!" );
59536 
59537   template <>
59538   struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
59539   {
59540     using Type = ImportMemoryHostPointerInfoEXT;
59541   };
59542 
59543 #ifdef VK_USE_PLATFORM_WIN32_KHR
59544   struct ImportMemoryWin32HandleInfoKHR
59545   {
59546     static const bool allowDuplicate = false;
59547     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
59548 
59549 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59550     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
59551     : handleType( handleType_ ), handle( handle_ ), name( name_ )
59552     {}
59553 
59554     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59555 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59556     ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59557     {
59558       *this = rhs;
59559     }
59560 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59561 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59562     ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59563     {
59564       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>( &rhs );
59565       return *this;
59566     }
59567 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59568     ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59569     {
59570       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoKHR ) );
59571       return *this;
59572     }
59573 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59574     ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59575     {
59576       pNext = pNext_;
59577       return *this;
59578     }
59579 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59580     ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59581     {
59582       handleType = handleType_;
59583       return *this;
59584     }
59585 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59586     ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
59587     {
59588       handle = handle_;
59589       return *this;
59590     }
59591 
setNameVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59592     ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
59593     {
59594       name = name_;
59595       return *this;
59596     }
59597 
59598 
operator VkImportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59599     operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
59600     {
59601       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
59602     }
59603 
operator VkImportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59604     operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
59605     {
59606       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
59607     }
59608 
59609 
59610 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59611     auto operator<=>( ImportMemoryWin32HandleInfoKHR const& ) const = default;
59612 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59613     bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59614     {
59615       return ( sType == rhs.sType )
59616           && ( pNext == rhs.pNext )
59617           && ( handleType == rhs.handleType )
59618           && ( handle == rhs.handle )
59619           && ( name == rhs.name );
59620     }
59621 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR59622     bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59623     {
59624       return !operator==( rhs );
59625     }
59626 #endif
59627 
59628 
59629 
59630   public:
59631     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
59632     const void* pNext = {};
59633     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
59634     HANDLE handle = {};
59635     LPCWSTR name = {};
59636 
59637   };
59638   static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
59639   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
59640 
59641   template <>
59642   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
59643   {
59644     using Type = ImportMemoryWin32HandleInfoKHR;
59645   };
59646 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
59647 
59648 #ifdef VK_USE_PLATFORM_WIN32_KHR
59649   struct ImportMemoryWin32HandleInfoNV
59650   {
59651     static const bool allowDuplicate = false;
59652     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
59653 
59654 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59655     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, HANDLE handle_ = {}) VULKAN_HPP_NOEXCEPT
59656     : handleType( handleType_ ), handle( handle_ )
59657     {}
59658 
59659     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59660 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59661     ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
59662     {
59663       *this = rhs;
59664     }
59665 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59666 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59667     ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
59668     {
59669       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>( &rhs );
59670       return *this;
59671     }
59672 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59673     ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
59674     {
59675       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoNV ) );
59676       return *this;
59677     }
59678 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59679     ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59680     {
59681       pNext = pNext_;
59682       return *this;
59683     }
59684 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59685     ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
59686     {
59687       handleType = handleType_;
59688       return *this;
59689     }
59690 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59691     ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
59692     {
59693       handle = handle_;
59694       return *this;
59695     }
59696 
59697 
operator VkImportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59698     operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
59699     {
59700       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
59701     }
59702 
operator VkImportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59703     operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
59704     {
59705       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
59706     }
59707 
59708 
59709 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59710     auto operator<=>( ImportMemoryWin32HandleInfoNV const& ) const = default;
59711 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59712     bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
59713     {
59714       return ( sType == rhs.sType )
59715           && ( pNext == rhs.pNext )
59716           && ( handleType == rhs.handleType )
59717           && ( handle == rhs.handle );
59718     }
59719 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV59720     bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
59721     {
59722       return !operator==( rhs );
59723     }
59724 #endif
59725 
59726 
59727 
59728   public:
59729     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
59730     const void* pNext = {};
59731     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
59732     HANDLE handle = {};
59733 
59734   };
59735   static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
59736   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
59737 
59738   template <>
59739   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
59740   {
59741     using Type = ImportMemoryWin32HandleInfoNV;
59742   };
59743 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
59744 
59745   struct InputAttachmentAspectReference
59746   {
59747 
59748 
59749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59750     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference(uint32_t subpass_ = {}, uint32_t inputAttachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT
59751     : subpass( subpass_ ), inputAttachmentIndex( inputAttachmentIndex_ ), aspectMask( aspectMask_ )
59752     {}
59753 
59754     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59755 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59756     InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
59757     {
59758       *this = rhs;
59759     }
59760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59761 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59762     InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
59763     {
59764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>( &rhs );
59765       return *this;
59766     }
59767 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59768     InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
59769     {
59770       memcpy( static_cast<void *>( this ), &rhs, sizeof( InputAttachmentAspectReference ) );
59771       return *this;
59772     }
59773 
setSubpassVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59774     InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
59775     {
59776       subpass = subpass_;
59777       return *this;
59778     }
59779 
setInputAttachmentIndexVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59780     InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
59781     {
59782       inputAttachmentIndex = inputAttachmentIndex_;
59783       return *this;
59784     }
59785 
setAspectMaskVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59786     InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
59787     {
59788       aspectMask = aspectMask_;
59789       return *this;
59790     }
59791 
59792 
operator VkInputAttachmentAspectReference const&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59793     operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT
59794     {
59795       return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
59796     }
59797 
operator VkInputAttachmentAspectReference&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59798     operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
59799     {
59800       return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
59801     }
59802 
59803 
59804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59805     auto operator<=>( InputAttachmentAspectReference const& ) const = default;
59806 #else
operator ==VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59807     bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
59808     {
59809       return ( subpass == rhs.subpass )
59810           && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
59811           && ( aspectMask == rhs.aspectMask );
59812     }
59813 
operator !=VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference59814     bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
59815     {
59816       return !operator==( rhs );
59817     }
59818 #endif
59819 
59820 
59821 
59822   public:
59823     uint32_t subpass = {};
59824     uint32_t inputAttachmentIndex = {};
59825     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
59826 
59827   };
59828   static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" );
59829   static_assert( std::is_standard_layout<InputAttachmentAspectReference>::value, "struct wrapper is not a standard layout!" );
59830   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
59831 
59832   struct InstanceCreateInfo
59833   {
59834     static const bool allowDuplicate = false;
59835     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
59836 
59837 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo59838     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
59839     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ )
59840     {}
59841 
59842     VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59843 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo59844     InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59845     {
59846       *this = rhs;
59847     }
59848 
59849 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo59850     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_ = {} )
59851     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
59852     {}
59853 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59854 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59855 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo59856     InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59857     {
59858       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>( &rhs );
59859       return *this;
59860     }
59861 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo59862     InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59863     {
59864       memcpy( static_cast<void *>( this ), &rhs, sizeof( InstanceCreateInfo ) );
59865       return *this;
59866     }
59867 
setPNextVULKAN_HPP_NAMESPACE::InstanceCreateInfo59868     InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59869     {
59870       pNext = pNext_;
59871       return *this;
59872     }
59873 
setFlagsVULKAN_HPP_NAMESPACE::InstanceCreateInfo59874     InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
59875     {
59876       flags = flags_;
59877       return *this;
59878     }
59879 
setPApplicationInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo59880     InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
59881     {
59882       pApplicationInfo = pApplicationInfo_;
59883       return *this;
59884     }
59885 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo59886     InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
59887     {
59888       enabledLayerCount = enabledLayerCount_;
59889       return *this;
59890     }
59891 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo59892     InstanceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
59893     {
59894       ppEnabledLayerNames = ppEnabledLayerNames_;
59895       return *this;
59896     }
59897 
59898 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo59899     InstanceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
59900     {
59901       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
59902       ppEnabledLayerNames = pEnabledLayerNames_.data();
59903       return *this;
59904     }
59905 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59906 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo59907     InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
59908     {
59909       enabledExtensionCount = enabledExtensionCount_;
59910       return *this;
59911     }
59912 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo59913     InstanceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
59914     {
59915       ppEnabledExtensionNames = ppEnabledExtensionNames_;
59916       return *this;
59917     }
59918 
59919 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo59920     InstanceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
59921     {
59922       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
59923       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
59924       return *this;
59925     }
59926 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59927 
59928 
operator VkInstanceCreateInfo const&VULKAN_HPP_NAMESPACE::InstanceCreateInfo59929     operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59930     {
59931       return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
59932     }
59933 
operator VkInstanceCreateInfo&VULKAN_HPP_NAMESPACE::InstanceCreateInfo59934     operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
59935     {
59936       return *reinterpret_cast<VkInstanceCreateInfo*>( this );
59937     }
59938 
59939 
59940 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59941     auto operator<=>( InstanceCreateInfo const& ) const = default;
59942 #else
operator ==VULKAN_HPP_NAMESPACE::InstanceCreateInfo59943     bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59944     {
59945       return ( sType == rhs.sType )
59946           && ( pNext == rhs.pNext )
59947           && ( flags == rhs.flags )
59948           && ( pApplicationInfo == rhs.pApplicationInfo )
59949           && ( enabledLayerCount == rhs.enabledLayerCount )
59950           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
59951           && ( enabledExtensionCount == rhs.enabledExtensionCount )
59952           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames );
59953     }
59954 
operator !=VULKAN_HPP_NAMESPACE::InstanceCreateInfo59955     bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59956     {
59957       return !operator==( rhs );
59958     }
59959 #endif
59960 
59961 
59962 
59963   public:
59964     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
59965     const void* pNext = {};
59966     VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
59967     const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {};
59968     uint32_t enabledLayerCount = {};
59969     const char* const * ppEnabledLayerNames = {};
59970     uint32_t enabledExtensionCount = {};
59971     const char* const * ppEnabledExtensionNames = {};
59972 
59973   };
59974   static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
59975   static_assert( std::is_standard_layout<InstanceCreateInfo>::value, "struct wrapper is not a standard layout!" );
59976 
59977   template <>
59978   struct CppType<StructureType, StructureType::eInstanceCreateInfo>
59979   {
59980     using Type = InstanceCreateInfo;
59981   };
59982 
59983 #ifdef VK_USE_PLATFORM_MACOS_MVK
59984   struct MacOSSurfaceCreateInfoMVK
59985   {
59986     static const bool allowDuplicate = false;
59987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
59988 
59989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK59990     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
59991     : flags( flags_ ), pView( pView_ )
59992     {}
59993 
59994     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59995 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK59996     MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
59997     {
59998       *this = rhs;
59999     }
60000 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60001 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60002     MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60003     {
60004       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>( &rhs );
60005       return *this;
60006     }
60007 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60008     MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60009     {
60010       memcpy( static_cast<void *>( this ), &rhs, sizeof( MacOSSurfaceCreateInfoMVK ) );
60011       return *this;
60012     }
60013 
setPNextVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60014     MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60015     {
60016       pNext = pNext_;
60017       return *this;
60018     }
60019 
setFlagsVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60020     MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
60021     {
60022       flags = flags_;
60023       return *this;
60024     }
60025 
setPViewVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60026     MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
60027     {
60028       pView = pView_;
60029       return *this;
60030     }
60031 
60032 
operator VkMacOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60033     operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
60034     {
60035       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
60036     }
60037 
operator VkMacOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60038     operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
60039     {
60040       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
60041     }
60042 
60043 
60044 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60045     auto operator<=>( MacOSSurfaceCreateInfoMVK const& ) const = default;
60046 #else
operator ==VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60047     bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60048     {
60049       return ( sType == rhs.sType )
60050           && ( pNext == rhs.pNext )
60051           && ( flags == rhs.flags )
60052           && ( pView == rhs.pView );
60053     }
60054 
operator !=VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60055     bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60056     {
60057       return !operator==( rhs );
60058     }
60059 #endif
60060 
60061 
60062 
60063   public:
60064     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
60065     const void* pNext = {};
60066     VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
60067     const void* pView = {};
60068 
60069   };
60070   static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
60071   static_assert( std::is_standard_layout<MacOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
60072 
60073   template <>
60074   struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
60075   {
60076     using Type = MacOSSurfaceCreateInfoMVK;
60077   };
60078 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
60079 
60080   struct MemoryAllocateFlagsInfo
60081   {
60082     static const bool allowDuplicate = false;
60083     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
60084 
60085 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60086     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo(VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
60087     : flags( flags_ ), deviceMask( deviceMask_ )
60088     {}
60089 
60090     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60091 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60092     MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60093     {
60094       *this = rhs;
60095     }
60096 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60097 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60098     MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60099     {
60100       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>( &rhs );
60101       return *this;
60102     }
60103 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60104     MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60105     {
60106       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryAllocateFlagsInfo ) );
60107       return *this;
60108     }
60109 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60110     MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60111     {
60112       pNext = pNext_;
60113       return *this;
60114     }
60115 
setFlagsVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60116     MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
60117     {
60118       flags = flags_;
60119       return *this;
60120     }
60121 
setDeviceMaskVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60122     MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
60123     {
60124       deviceMask = deviceMask_;
60125       return *this;
60126     }
60127 
60128 
operator VkMemoryAllocateFlagsInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60129     operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT
60130     {
60131       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
60132     }
60133 
operator VkMemoryAllocateFlagsInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60134     operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
60135     {
60136       return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
60137     }
60138 
60139 
60140 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60141     auto operator<=>( MemoryAllocateFlagsInfo const& ) const = default;
60142 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60143     bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60144     {
60145       return ( sType == rhs.sType )
60146           && ( pNext == rhs.pNext )
60147           && ( flags == rhs.flags )
60148           && ( deviceMask == rhs.deviceMask );
60149     }
60150 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60151     bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60152     {
60153       return !operator==( rhs );
60154     }
60155 #endif
60156 
60157 
60158 
60159   public:
60160     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
60161     const void* pNext = {};
60162     VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
60163     uint32_t deviceMask = {};
60164 
60165   };
60166   static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" );
60167   static_assert( std::is_standard_layout<MemoryAllocateFlagsInfo>::value, "struct wrapper is not a standard layout!" );
60168 
60169   template <>
60170   struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
60171   {
60172     using Type = MemoryAllocateFlagsInfo;
60173   };
60174   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
60175 
60176   struct MemoryDedicatedAllocateInfo
60177   {
60178     static const bool allowDuplicate = false;
60179     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
60180 
60181 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60182     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
60183     : image( image_ ), buffer( buffer_ )
60184     {}
60185 
60186     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60187 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60188     MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60189     {
60190       *this = rhs;
60191     }
60192 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60193 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60194     MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60195     {
60196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>( &rhs );
60197       return *this;
60198     }
60199 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60200     MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60201     {
60202       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryDedicatedAllocateInfo ) );
60203       return *this;
60204     }
60205 
setPNextVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60206     MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60207     {
60208       pNext = pNext_;
60209       return *this;
60210     }
60211 
setImageVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60212     MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
60213     {
60214       image = image_;
60215       return *this;
60216     }
60217 
setBufferVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60218     MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
60219     {
60220       buffer = buffer_;
60221       return *this;
60222     }
60223 
60224 
operator VkMemoryDedicatedAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60225     operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
60226     {
60227       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
60228     }
60229 
operator VkMemoryDedicatedAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60230     operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
60231     {
60232       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
60233     }
60234 
60235 
60236 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60237     auto operator<=>( MemoryDedicatedAllocateInfo const& ) const = default;
60238 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60239     bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60240     {
60241       return ( sType == rhs.sType )
60242           && ( pNext == rhs.pNext )
60243           && ( image == rhs.image )
60244           && ( buffer == rhs.buffer );
60245     }
60246 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60247     bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60248     {
60249       return !operator==( rhs );
60250     }
60251 #endif
60252 
60253 
60254 
60255   public:
60256     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
60257     const void* pNext = {};
60258     VULKAN_HPP_NAMESPACE::Image image = {};
60259     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
60260 
60261   };
60262   static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" );
60263   static_assert( std::is_standard_layout<MemoryDedicatedAllocateInfo>::value, "struct wrapper is not a standard layout!" );
60264 
60265   template <>
60266   struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
60267   {
60268     using Type = MemoryDedicatedAllocateInfo;
60269   };
60270   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
60271 
60272   struct MemoryDedicatedRequirements
60273   {
60274     static const bool allowDuplicate = false;
60275     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
60276 
60277 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60278     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements(VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
60279     : prefersDedicatedAllocation( prefersDedicatedAllocation_ ), requiresDedicatedAllocation( requiresDedicatedAllocation_ )
60280     {}
60281 
60282     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60283 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60284     MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60285     {
60286       *this = rhs;
60287     }
60288 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60289 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60290     MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60291     {
60292       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>( &rhs );
60293       return *this;
60294     }
60295 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60296     MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60297     {
60298       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryDedicatedRequirements ) );
60299       return *this;
60300     }
60301 
60302 
operator VkMemoryDedicatedRequirements const&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60303     operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT
60304     {
60305       return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
60306     }
60307 
operator VkMemoryDedicatedRequirements&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60308     operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
60309     {
60310       return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
60311     }
60312 
60313 
60314 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60315     auto operator<=>( MemoryDedicatedRequirements const& ) const = default;
60316 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60317     bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
60318     {
60319       return ( sType == rhs.sType )
60320           && ( pNext == rhs.pNext )
60321           && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
60322           && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
60323     }
60324 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60325     bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
60326     {
60327       return !operator==( rhs );
60328     }
60329 #endif
60330 
60331 
60332 
60333   public:
60334     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
60335     void* pNext = {};
60336     VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
60337     VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
60338 
60339   };
60340   static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" );
60341   static_assert( std::is_standard_layout<MemoryDedicatedRequirements>::value, "struct wrapper is not a standard layout!" );
60342 
60343   template <>
60344   struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
60345   {
60346     using Type = MemoryDedicatedRequirements;
60347   };
60348   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
60349 
60350   struct MemoryOpaqueCaptureAddressAllocateInfo
60351   {
60352     static const bool allowDuplicate = false;
60353     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
60354 
60355 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60356     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
60357     : opaqueCaptureAddress( opaqueCaptureAddress_ )
60358     {}
60359 
60360     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60361 
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60362     MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60363     {
60364       *this = rhs;
60365     }
60366 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60367 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60368     MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60369     {
60370       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs );
60371       return *this;
60372     }
60373 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60374     MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60375     {
60376       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) );
60377       return *this;
60378     }
60379 
setPNextVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60380     MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60381     {
60382       pNext = pNext_;
60383       return *this;
60384     }
60385 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60386     MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
60387     {
60388       opaqueCaptureAddress = opaqueCaptureAddress_;
60389       return *this;
60390     }
60391 
60392 
operator VkMemoryOpaqueCaptureAddressAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60393     operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
60394     {
60395       return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
60396     }
60397 
operator VkMemoryOpaqueCaptureAddressAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60398     operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
60399     {
60400       return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
60401     }
60402 
60403 
60404 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60405     auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const& ) const = default;
60406 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60407     bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60408     {
60409       return ( sType == rhs.sType )
60410           && ( pNext == rhs.pNext )
60411           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
60412     }
60413 
operator !=VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60414     bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60415     {
60416       return !operator==( rhs );
60417     }
60418 #endif
60419 
60420 
60421 
60422   public:
60423     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
60424     const void* pNext = {};
60425     uint64_t opaqueCaptureAddress = {};
60426 
60427   };
60428   static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" );
60429   static_assert( std::is_standard_layout<MemoryOpaqueCaptureAddressAllocateInfo>::value, "struct wrapper is not a standard layout!" );
60430 
60431   template <>
60432   struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
60433   {
60434     using Type = MemoryOpaqueCaptureAddressAllocateInfo;
60435   };
60436   using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
60437 
60438   struct MemoryPriorityAllocateInfoEXT
60439   {
60440     static const bool allowDuplicate = false;
60441     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
60442 
60443 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60444     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT(float priority_ = {}) VULKAN_HPP_NOEXCEPT
60445     : priority( priority_ )
60446     {}
60447 
60448     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60449 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60450     MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60451     {
60452       *this = rhs;
60453     }
60454 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60455 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60456     MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60457     {
60458       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>( &rhs );
60459       return *this;
60460     }
60461 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60462     MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60463     {
60464       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryPriorityAllocateInfoEXT ) );
60465       return *this;
60466     }
60467 
setPNextVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60468     MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60469     {
60470       pNext = pNext_;
60471       return *this;
60472     }
60473 
setPriorityVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60474     MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
60475     {
60476       priority = priority_;
60477       return *this;
60478     }
60479 
60480 
operator VkMemoryPriorityAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60481     operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
60482     {
60483       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
60484     }
60485 
operator VkMemoryPriorityAllocateInfoEXT&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60486     operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
60487     {
60488       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
60489     }
60490 
60491 
60492 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60493     auto operator<=>( MemoryPriorityAllocateInfoEXT const& ) const = default;
60494 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60495     bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60496     {
60497       return ( sType == rhs.sType )
60498           && ( pNext == rhs.pNext )
60499           && ( priority == rhs.priority );
60500     }
60501 
operator !=VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT60502     bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60503     {
60504       return !operator==( rhs );
60505     }
60506 #endif
60507 
60508 
60509 
60510   public:
60511     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
60512     const void* pNext = {};
60513     float priority = {};
60514 
60515   };
60516   static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" );
60517   static_assert( std::is_standard_layout<MemoryPriorityAllocateInfoEXT>::value, "struct wrapper is not a standard layout!" );
60518 
60519   template <>
60520   struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
60521   {
60522     using Type = MemoryPriorityAllocateInfoEXT;
60523   };
60524 
60525 #ifdef VK_USE_PLATFORM_METAL_EXT
60526   struct MetalSurfaceCreateInfoEXT
60527   {
60528     static const bool allowDuplicate = false;
60529     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
60530 
60531 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60532     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, const CAMetalLayer* pLayer_ = {}) VULKAN_HPP_NOEXCEPT
60533     : flags( flags_ ), pLayer( pLayer_ )
60534     {}
60535 
60536     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60537 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60538     MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60539     {
60540       *this = rhs;
60541     }
60542 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60543 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60544     MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60545     {
60546       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>( &rhs );
60547       return *this;
60548     }
60549 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60550     MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60551     {
60552       memcpy( static_cast<void *>( this ), &rhs, sizeof( MetalSurfaceCreateInfoEXT ) );
60553       return *this;
60554     }
60555 
setPNextVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60556     MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60557     {
60558       pNext = pNext_;
60559       return *this;
60560     }
60561 
setFlagsVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60562     MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
60563     {
60564       flags = flags_;
60565       return *this;
60566     }
60567 
setPLayerVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60568     MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT
60569     {
60570       pLayer = pLayer_;
60571       return *this;
60572     }
60573 
60574 
operator VkMetalSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60575     operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
60576     {
60577       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
60578     }
60579 
operator VkMetalSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60580     operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
60581     {
60582       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
60583     }
60584 
60585 
60586 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60587     auto operator<=>( MetalSurfaceCreateInfoEXT const& ) const = default;
60588 #else
operator ==VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60589     bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60590     {
60591       return ( sType == rhs.sType )
60592           && ( pNext == rhs.pNext )
60593           && ( flags == rhs.flags )
60594           && ( pLayer == rhs.pLayer );
60595     }
60596 
operator !=VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT60597     bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60598     {
60599       return !operator==( rhs );
60600     }
60601 #endif
60602 
60603 
60604 
60605   public:
60606     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
60607     const void* pNext = {};
60608     VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
60609     const CAMetalLayer* pLayer = {};
60610 
60611   };
60612   static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
60613   static_assert( std::is_standard_layout<MetalSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
60614 
60615   template <>
60616   struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
60617   {
60618     using Type = MetalSurfaceCreateInfoEXT;
60619   };
60620 #endif /*VK_USE_PLATFORM_METAL_EXT*/
60621 
60622   union PerformanceCounterResultKHR
60623   {
PerformanceCounterResultKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)60624     PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const& rhs ) VULKAN_HPP_NOEXCEPT
60625     {
60626       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
60627     }
60628 
PerformanceCounterResultKHR(int32_t int32_={} )60629     PerformanceCounterResultKHR( int32_t int32_ = {} )
60630       : int32( int32_ )
60631     {}
60632 
PerformanceCounterResultKHR(int64_t int64_)60633     PerformanceCounterResultKHR( int64_t int64_ )
60634       : int64( int64_ )
60635     {}
60636 
PerformanceCounterResultKHR(uint32_t uint32_)60637     PerformanceCounterResultKHR( uint32_t uint32_ )
60638       : uint32( uint32_ )
60639     {}
60640 
PerformanceCounterResultKHR(uint64_t uint64_)60641     PerformanceCounterResultKHR( uint64_t uint64_ )
60642       : uint64( uint64_ )
60643     {}
60644 
PerformanceCounterResultKHR(float float32_)60645     PerformanceCounterResultKHR( float float32_ )
60646       : float32( float32_ )
60647     {}
60648 
PerformanceCounterResultKHR(double float64_)60649     PerformanceCounterResultKHR( double float64_ )
60650       : float64( float64_ )
60651     {}
60652 
setInt32(int32_t int32_)60653     PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
60654     {
60655       int32 = int32_;
60656       return *this;
60657     }
60658 
setInt64(int64_t int64_)60659     PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
60660     {
60661       int64 = int64_;
60662       return *this;
60663     }
60664 
setUint32(uint32_t uint32_)60665     PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
60666     {
60667       uint32 = uint32_;
60668       return *this;
60669     }
60670 
setUint64(uint64_t uint64_)60671     PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
60672     {
60673       uint64 = uint64_;
60674       return *this;
60675     }
60676 
setFloat32(float float32_)60677     PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
60678     {
60679       float32 = float32_;
60680       return *this;
60681     }
60682 
setFloat64(double float64_)60683     PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
60684     {
60685       float64 = float64_;
60686       return *this;
60687     }
60688 
operator =(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)60689     VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60690     {
60691       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
60692       return *this;
60693     }
60694 
operator VkPerformanceCounterResultKHR const&() const60695     operator VkPerformanceCounterResultKHR const&() const
60696     {
60697       return *reinterpret_cast<const VkPerformanceCounterResultKHR*>(this);
60698     }
60699 
operator VkPerformanceCounterResultKHR&()60700     operator VkPerformanceCounterResultKHR &()
60701     {
60702       return *reinterpret_cast<VkPerformanceCounterResultKHR*>(this);
60703     }
60704 
60705     int32_t int32;
60706     int64_t int64;
60707     uint32_t uint32;
60708     uint64_t uint64;
60709     float float32;
60710     double float64;
60711   };
60712 
60713   struct PerformanceQuerySubmitInfoKHR
60714   {
60715     static const bool allowDuplicate = false;
60716     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
60717 
60718 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60719     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR(uint32_t counterPassIndex_ = {}) VULKAN_HPP_NOEXCEPT
60720     : counterPassIndex( counterPassIndex_ )
60721     {}
60722 
60723     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60724 
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60725     PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60726     {
60727       *this = rhs;
60728     }
60729 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60730 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60731     PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60732     {
60733       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>( &rhs );
60734       return *this;
60735     }
60736 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60737     PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60738     {
60739       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceQuerySubmitInfoKHR ) );
60740       return *this;
60741     }
60742 
setPNextVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60743     PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60744     {
60745       pNext = pNext_;
60746       return *this;
60747     }
60748 
setCounterPassIndexVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60749     PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
60750     {
60751       counterPassIndex = counterPassIndex_;
60752       return *this;
60753     }
60754 
60755 
operator VkPerformanceQuerySubmitInfoKHR const&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60756     operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
60757     {
60758       return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>( this );
60759     }
60760 
operator VkPerformanceQuerySubmitInfoKHR&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60761     operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
60762     {
60763       return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>( this );
60764     }
60765 
60766 
60767 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60768     auto operator<=>( PerformanceQuerySubmitInfoKHR const& ) const = default;
60769 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60770     bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60771     {
60772       return ( sType == rhs.sType )
60773           && ( pNext == rhs.pNext )
60774           && ( counterPassIndex == rhs.counterPassIndex );
60775     }
60776 
operator !=VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR60777     bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60778     {
60779       return !operator==( rhs );
60780     }
60781 #endif
60782 
60783 
60784 
60785   public:
60786     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
60787     const void* pNext = {};
60788     uint32_t counterPassIndex = {};
60789 
60790   };
60791   static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" );
60792   static_assert( std::is_standard_layout<PerformanceQuerySubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
60793 
60794   template <>
60795   struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
60796   {
60797     using Type = PerformanceQuerySubmitInfoKHR;
60798   };
60799 
60800   struct PhysicalDevice16BitStorageFeatures
60801   {
60802     static const bool allowDuplicate = false;
60803     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
60804 
60805 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60806     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
60807     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ )
60808     {}
60809 
60810     VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60811 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60812     PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60813     {
60814       *this = rhs;
60815     }
60816 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60818     PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60819     {
60820       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>( &rhs );
60821       return *this;
60822     }
60823 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60824     PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
60825     {
60826       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice16BitStorageFeatures ) );
60827       return *this;
60828     }
60829 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60830     PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
60831     {
60832       pNext = pNext_;
60833       return *this;
60834     }
60835 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60836     PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
60837     {
60838       storageBuffer16BitAccess = storageBuffer16BitAccess_;
60839       return *this;
60840     }
60841 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60842     PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
60843     {
60844       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
60845       return *this;
60846     }
60847 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60848     PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
60849     {
60850       storagePushConstant16 = storagePushConstant16_;
60851       return *this;
60852     }
60853 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60854     PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
60855     {
60856       storageInputOutput16 = storageInputOutput16_;
60857       return *this;
60858     }
60859 
60860 
operator VkPhysicalDevice16BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60861     operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
60862     {
60863       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
60864     }
60865 
operator VkPhysicalDevice16BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60866     operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
60867     {
60868       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
60869     }
60870 
60871 
60872 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60873     auto operator<=>( PhysicalDevice16BitStorageFeatures const& ) const = default;
60874 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60875     bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
60876     {
60877       return ( sType == rhs.sType )
60878           && ( pNext == rhs.pNext )
60879           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
60880           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
60881           && ( storagePushConstant16 == rhs.storagePushConstant16 )
60882           && ( storageInputOutput16 == rhs.storageInputOutput16 );
60883     }
60884 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures60885     bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
60886     {
60887       return !operator==( rhs );
60888     }
60889 #endif
60890 
60891 
60892 
60893   public:
60894     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
60895     void* pNext = {};
60896     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
60897     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
60898     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
60899     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
60900 
60901   };
60902   static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" );
60903   static_assert( std::is_standard_layout<PhysicalDevice16BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
60904 
60905   template <>
60906   struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
60907   {
60908     using Type = PhysicalDevice16BitStorageFeatures;
60909   };
60910   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
60911 
60912   struct PhysicalDevice4444FormatsFeaturesEXT
60913   {
60914     static const bool allowDuplicate = false;
60915     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
60916 
60917 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60918     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {}) VULKAN_HPP_NOEXCEPT
60919     : formatA4R4G4B4( formatA4R4G4B4_ ), formatA4B4G4R4( formatA4B4G4R4_ )
60920     {}
60921 
60922     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60923 
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60924     PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60925     {
60926       *this = rhs;
60927     }
60928 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60929 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60930     PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60931     {
60932       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs );
60933       return *this;
60934     }
60935 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60936     PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60937     {
60938       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice4444FormatsFeaturesEXT ) );
60939       return *this;
60940     }
60941 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60942     PhysicalDevice4444FormatsFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
60943     {
60944       pNext = pNext_;
60945       return *this;
60946     }
60947 
setFormatA4R4G4B4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60948     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT
60949     {
60950       formatA4R4G4B4 = formatA4R4G4B4_;
60951       return *this;
60952     }
60953 
setFormatA4B4G4R4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60954     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT
60955     {
60956       formatA4B4G4R4 = formatA4B4G4R4_;
60957       return *this;
60958     }
60959 
60960 
operator VkPhysicalDevice4444FormatsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60961     operator VkPhysicalDevice4444FormatsFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
60962     {
60963       return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
60964     }
60965 
operator VkPhysicalDevice4444FormatsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60966     operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
60967     {
60968       return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
60969     }
60970 
60971 
60972 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60973     auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const& ) const = default;
60974 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60975     bool operator==( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60976     {
60977       return ( sType == rhs.sType )
60978           && ( pNext == rhs.pNext )
60979           && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 )
60980           && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 );
60981     }
60982 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT60983     bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60984     {
60985       return !operator==( rhs );
60986     }
60987 #endif
60988 
60989 
60990 
60991   public:
60992     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
60993     void* pNext = {};
60994     VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {};
60995     VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {};
60996 
60997   };
60998   static_assert( sizeof( PhysicalDevice4444FormatsFeaturesEXT ) == sizeof( VkPhysicalDevice4444FormatsFeaturesEXT ), "struct and wrapper have different size!" );
60999   static_assert( std::is_standard_layout<PhysicalDevice4444FormatsFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61000 
61001   template <>
61002   struct CppType<StructureType, StructureType::ePhysicalDevice4444FormatsFeaturesEXT>
61003   {
61004     using Type = PhysicalDevice4444FormatsFeaturesEXT;
61005   };
61006 
61007   struct PhysicalDevice8BitStorageFeatures
61008   {
61009     static const bool allowDuplicate = false;
61010     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
61011 
61012 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61013     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}) VULKAN_HPP_NOEXCEPT
61014     : storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ )
61015     {}
61016 
61017     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61018 
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61019     PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61020     {
61021       *this = rhs;
61022     }
61023 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61024 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61025     PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61026     {
61027       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>( &rhs );
61028       return *this;
61029     }
61030 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61031     PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61032     {
61033       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice8BitStorageFeatures ) );
61034       return *this;
61035     }
61036 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61037     PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61038     {
61039       pNext = pNext_;
61040       return *this;
61041     }
61042 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61043     PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
61044     {
61045       storageBuffer8BitAccess = storageBuffer8BitAccess_;
61046       return *this;
61047     }
61048 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61049     PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
61050     {
61051       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
61052       return *this;
61053     }
61054 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61055     PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
61056     {
61057       storagePushConstant8 = storagePushConstant8_;
61058       return *this;
61059     }
61060 
61061 
operator VkPhysicalDevice8BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61062     operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
61063     {
61064       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>( this );
61065     }
61066 
operator VkPhysicalDevice8BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61067     operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
61068     {
61069       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>( this );
61070     }
61071 
61072 
61073 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61074     auto operator<=>( PhysicalDevice8BitStorageFeatures const& ) const = default;
61075 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61076     bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61077     {
61078       return ( sType == rhs.sType )
61079           && ( pNext == rhs.pNext )
61080           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
61081           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
61082           && ( storagePushConstant8 == rhs.storagePushConstant8 );
61083     }
61084 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61085     bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61086     {
61087       return !operator==( rhs );
61088     }
61089 #endif
61090 
61091 
61092 
61093   public:
61094     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
61095     void* pNext = {};
61096     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
61097     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
61098     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
61099 
61100   };
61101   static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" );
61102   static_assert( std::is_standard_layout<PhysicalDevice8BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
61103 
61104   template <>
61105   struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
61106   {
61107     using Type = PhysicalDevice8BitStorageFeatures;
61108   };
61109   using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
61110 
61111   struct PhysicalDeviceASTCDecodeFeaturesEXT
61112   {
61113     static const bool allowDuplicate = false;
61114     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
61115 
61116 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61117     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {}) VULKAN_HPP_NOEXCEPT
61118     : decodeModeSharedExponent( decodeModeSharedExponent_ )
61119     {}
61120 
61121     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61122 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61123     PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61124     {
61125       *this = rhs;
61126     }
61127 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61128 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61129     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61130     {
61131       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs );
61132       return *this;
61133     }
61134 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61135     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61136     {
61137       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) );
61138       return *this;
61139     }
61140 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61141     PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61142     {
61143       pNext = pNext_;
61144       return *this;
61145     }
61146 
setDecodeModeSharedExponentVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61147     PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
61148     {
61149       decodeModeSharedExponent = decodeModeSharedExponent_;
61150       return *this;
61151     }
61152 
61153 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61154     operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61155     {
61156       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
61157     }
61158 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61159     operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61160     {
61161       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
61162     }
61163 
61164 
61165 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61166     auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const& ) const = default;
61167 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61168     bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61169     {
61170       return ( sType == rhs.sType )
61171           && ( pNext == rhs.pNext )
61172           && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
61173     }
61174 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61175     bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61176     {
61177       return !operator==( rhs );
61178     }
61179 #endif
61180 
61181 
61182 
61183   public:
61184     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
61185     void* pNext = {};
61186     VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
61187 
61188   };
61189   static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" );
61190   static_assert( std::is_standard_layout<PhysicalDeviceASTCDecodeFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61191 
61192   template <>
61193   struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
61194   {
61195     using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
61196   };
61197 
61198   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
61199   {
61200     static const bool allowDuplicate = false;
61201     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61202 
61203 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61204     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {}) VULKAN_HPP_NOEXCEPT
61205     : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
61206     {}
61207 
61208     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61209 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61210     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61211     {
61212       *this = rhs;
61213     }
61214 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61215 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61216     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61217     {
61218       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs );
61219       return *this;
61220     }
61221 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61222     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61223     {
61224       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) );
61225       return *this;
61226     }
61227 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61228     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61229     {
61230       pNext = pNext_;
61231       return *this;
61232     }
61233 
setAdvancedBlendCoherentOperationsVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61234     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
61235     {
61236       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
61237       return *this;
61238     }
61239 
61240 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61241     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61242     {
61243       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
61244     }
61245 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61246     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61247     {
61248       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
61249     }
61250 
61251 
61252 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61253     auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& ) const = default;
61254 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61255     bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61256     {
61257       return ( sType == rhs.sType )
61258           && ( pNext == rhs.pNext )
61259           && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
61260     }
61261 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61262     bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61263     {
61264       return !operator==( rhs );
61265     }
61266 #endif
61267 
61268 
61269 
61270   public:
61271     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61272     void* pNext = {};
61273     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
61274 
61275   };
61276   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" );
61277   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61278 
61279   template <>
61280   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
61281   {
61282     using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61283   };
61284 
61285   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
61286   {
61287     static const bool allowDuplicate = false;
61288     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61289 
61290 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61291     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
61292     : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ), advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ), advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ), advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ), advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ), advancedBlendAllOperations( advancedBlendAllOperations_ )
61293     {}
61294 
61295     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61296 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61297     PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61298     {
61299       *this = rhs;
61300     }
61301 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61302 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61303     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61304     {
61305       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs );
61306       return *this;
61307     }
61308 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61309     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61310     {
61311       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) );
61312       return *this;
61313     }
61314 
61315 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61316     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
61317     {
61318       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
61319     }
61320 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61321     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
61322     {
61323       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
61324     }
61325 
61326 
61327 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61328     auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& ) const = default;
61329 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61330     bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61331     {
61332       return ( sType == rhs.sType )
61333           && ( pNext == rhs.pNext )
61334           && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
61335           && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
61336           && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
61337           && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
61338           && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
61339           && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
61340     }
61341 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61342     bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61343     {
61344       return !operator==( rhs );
61345     }
61346 #endif
61347 
61348 
61349 
61350   public:
61351     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61352     void* pNext = {};
61353     uint32_t advancedBlendMaxColorAttachments = {};
61354     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
61355     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
61356     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
61357     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
61358     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
61359 
61360   };
61361   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" );
61362   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
61363 
61364   template <>
61365   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
61366   {
61367     using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61368   };
61369 
61370   struct PhysicalDeviceBufferDeviceAddressFeatures
61371   {
61372     static const bool allowDuplicate = false;
61373     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
61374 
61375 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61376     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
61377     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
61378     {}
61379 
61380     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61381 
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61382     PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61383     {
61384       *this = rhs;
61385     }
61386 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61387 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61388     PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61389     {
61390       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs );
61391       return *this;
61392     }
61393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61394     PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61395     {
61396       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) );
61397       return *this;
61398     }
61399 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61400     PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61401     {
61402       pNext = pNext_;
61403       return *this;
61404     }
61405 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61406     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
61407     {
61408       bufferDeviceAddress = bufferDeviceAddress_;
61409       return *this;
61410     }
61411 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61412     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
61413     {
61414       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
61415       return *this;
61416     }
61417 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61418     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
61419     {
61420       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
61421       return *this;
61422     }
61423 
61424 
operator VkPhysicalDeviceBufferDeviceAddressFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61425     operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT
61426     {
61427       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
61428     }
61429 
operator VkPhysicalDeviceBufferDeviceAddressFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61430     operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
61431     {
61432       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
61433     }
61434 
61435 
61436 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61437     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const& ) const = default;
61438 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61439     bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61440     {
61441       return ( sType == rhs.sType )
61442           && ( pNext == rhs.pNext )
61443           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
61444           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
61445           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
61446     }
61447 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61448     bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61449     {
61450       return !operator==( rhs );
61451     }
61452 #endif
61453 
61454 
61455 
61456   public:
61457     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
61458     void* pNext = {};
61459     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
61460     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
61461     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
61462 
61463   };
61464   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" );
61465   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeatures>::value, "struct wrapper is not a standard layout!" );
61466 
61467   template <>
61468   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
61469   {
61470     using Type = PhysicalDeviceBufferDeviceAddressFeatures;
61471   };
61472   using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
61473 
61474   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
61475   {
61476     static const bool allowDuplicate = false;
61477     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
61478 
61479 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61480     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
61481     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
61482     {}
61483 
61484     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61485 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61486     PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61487     {
61488       *this = rhs;
61489     }
61490 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61491 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61492     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61493     {
61494       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs );
61495       return *this;
61496     }
61497 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61498     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61499     {
61500       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) );
61501       return *this;
61502     }
61503 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61504     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61505     {
61506       pNext = pNext_;
61507       return *this;
61508     }
61509 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61510     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
61511     {
61512       bufferDeviceAddress = bufferDeviceAddress_;
61513       return *this;
61514     }
61515 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61516     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
61517     {
61518       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
61519       return *this;
61520     }
61521 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61522     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
61523     {
61524       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
61525       return *this;
61526     }
61527 
61528 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61529     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61530     {
61531       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
61532     }
61533 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61534     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61535     {
61536       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
61537     }
61538 
61539 
61540 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61541     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& ) const = default;
61542 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61543     bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61544     {
61545       return ( sType == rhs.sType )
61546           && ( pNext == rhs.pNext )
61547           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
61548           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
61549           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
61550     }
61551 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT61552     bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61553     {
61554       return !operator==( rhs );
61555     }
61556 #endif
61557 
61558 
61559 
61560   public:
61561     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
61562     void* pNext = {};
61563     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
61564     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
61565     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
61566 
61567   };
61568   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" );
61569   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61570 
61571   template <>
61572   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
61573   {
61574     using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
61575   };
61576   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
61577 
61578   struct PhysicalDeviceCoherentMemoryFeaturesAMD
61579   {
61580     static const bool allowDuplicate = false;
61581     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
61582 
61583 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61584     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {}) VULKAN_HPP_NOEXCEPT
61585     : deviceCoherentMemory( deviceCoherentMemory_ )
61586     {}
61587 
61588     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61589 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61590     PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
61591     {
61592       *this = rhs;
61593     }
61594 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61595 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61596     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
61597     {
61598       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs );
61599       return *this;
61600     }
61601 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61602     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
61603     {
61604       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) );
61605       return *this;
61606     }
61607 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61608     PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61609     {
61610       pNext = pNext_;
61611       return *this;
61612     }
61613 
setDeviceCoherentMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61614     PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
61615     {
61616       deviceCoherentMemory = deviceCoherentMemory_;
61617       return *this;
61618     }
61619 
61620 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61621     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT
61622     {
61623       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
61624     }
61625 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61626     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
61627     {
61628       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
61629     }
61630 
61631 
61632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61633     auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const& ) const = default;
61634 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61635     bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
61636     {
61637       return ( sType == rhs.sType )
61638           && ( pNext == rhs.pNext )
61639           && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
61640     }
61641 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD61642     bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
61643     {
61644       return !operator==( rhs );
61645     }
61646 #endif
61647 
61648 
61649 
61650   public:
61651     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
61652     void* pNext = {};
61653     VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
61654 
61655   };
61656   static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" );
61657   static_assert( std::is_standard_layout<PhysicalDeviceCoherentMemoryFeaturesAMD>::value, "struct wrapper is not a standard layout!" );
61658 
61659   template <>
61660   struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
61661   {
61662     using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
61663   };
61664 
61665   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
61666   {
61667     static const bool allowDuplicate = false;
61668     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
61669 
61670 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61671     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {}) VULKAN_HPP_NOEXCEPT
61672     : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ), computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
61673     {}
61674 
61675     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61676 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61677     PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61678     {
61679       *this = rhs;
61680     }
61681 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61682 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61683     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61684     {
61685       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs );
61686       return *this;
61687     }
61688 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61689     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61690     {
61691       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) );
61692       return *this;
61693     }
61694 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61695     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61696     {
61697       pNext = pNext_;
61698       return *this;
61699     }
61700 
setComputeDerivativeGroupQuadsVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61701     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
61702     {
61703       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
61704       return *this;
61705     }
61706 
setComputeDerivativeGroupLinearVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61707     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
61708     {
61709       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
61710       return *this;
61711     }
61712 
61713 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61714     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
61715     {
61716       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
61717     }
61718 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61719     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
61720     {
61721       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
61722     }
61723 
61724 
61725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61726     auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& ) const = default;
61727 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61728     bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
61729     {
61730       return ( sType == rhs.sType )
61731           && ( pNext == rhs.pNext )
61732           && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
61733           && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
61734     }
61735 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV61736     bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
61737     {
61738       return !operator==( rhs );
61739     }
61740 #endif
61741 
61742 
61743 
61744   public:
61745     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
61746     void* pNext = {};
61747     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
61748     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
61749 
61750   };
61751   static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" );
61752   static_assert( std::is_standard_layout<PhysicalDeviceComputeShaderDerivativesFeaturesNV>::value, "struct wrapper is not a standard layout!" );
61753 
61754   template <>
61755   struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
61756   {
61757     using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
61758   };
61759 
61760   struct PhysicalDeviceConditionalRenderingFeaturesEXT
61761   {
61762     static const bool allowDuplicate = false;
61763     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
61764 
61765 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61766     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {}) VULKAN_HPP_NOEXCEPT
61767     : conditionalRendering( conditionalRendering_ ), inheritedConditionalRendering( inheritedConditionalRendering_ )
61768     {}
61769 
61770     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61771 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61772     PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61773     {
61774       *this = rhs;
61775     }
61776 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61777 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61778     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61779     {
61780       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs );
61781       return *this;
61782     }
61783 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61784     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61785     {
61786       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) );
61787       return *this;
61788     }
61789 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61790     PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61791     {
61792       pNext = pNext_;
61793       return *this;
61794     }
61795 
setConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61796     PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
61797     {
61798       conditionalRendering = conditionalRendering_;
61799       return *this;
61800     }
61801 
setInheritedConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61802     PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
61803     {
61804       inheritedConditionalRendering = inheritedConditionalRendering_;
61805       return *this;
61806     }
61807 
61808 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61809     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61810     {
61811       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
61812     }
61813 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61814     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61815     {
61816       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
61817     }
61818 
61819 
61820 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61821     auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const& ) const = default;
61822 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61823     bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61824     {
61825       return ( sType == rhs.sType )
61826           && ( pNext == rhs.pNext )
61827           && ( conditionalRendering == rhs.conditionalRendering )
61828           && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
61829     }
61830 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT61831     bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61832     {
61833       return !operator==( rhs );
61834     }
61835 #endif
61836 
61837 
61838 
61839   public:
61840     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
61841     void* pNext = {};
61842     VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
61843     VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
61844 
61845   };
61846   static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" );
61847   static_assert( std::is_standard_layout<PhysicalDeviceConditionalRenderingFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61848 
61849   template <>
61850   struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
61851   {
61852     using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
61853   };
61854 
61855   struct PhysicalDeviceConservativeRasterizationPropertiesEXT
61856   {
61857     static const bool allowDuplicate = false;
61858     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
61859 
61860 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61861     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
61862     : primitiveOverestimationSize( primitiveOverestimationSize_ ), maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ), extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ), primitiveUnderestimation( primitiveUnderestimation_ ), conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ), degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ), degenerateLinesRasterized( degenerateLinesRasterized_ ), fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ), conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
61863     {}
61864 
61865     VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61866 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61867     PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61868     {
61869       *this = rhs;
61870     }
61871 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61872 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61873     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61874     {
61875       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs );
61876       return *this;
61877     }
61878 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61879     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61880     {
61881       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) );
61882       return *this;
61883     }
61884 
61885 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61886     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
61887     {
61888       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
61889     }
61890 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61891     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
61892     {
61893       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
61894     }
61895 
61896 
61897 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61898     auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const& ) const = default;
61899 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61900     bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61901     {
61902       return ( sType == rhs.sType )
61903           && ( pNext == rhs.pNext )
61904           && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
61905           && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
61906           && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
61907           && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
61908           && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
61909           && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
61910           && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
61911           && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
61912           && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
61913     }
61914 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT61915     bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61916     {
61917       return !operator==( rhs );
61918     }
61919 #endif
61920 
61921 
61922 
61923   public:
61924     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
61925     void* pNext = {};
61926     float primitiveOverestimationSize = {};
61927     float maxExtraPrimitiveOverestimationSize = {};
61928     float extraPrimitiveOverestimationSizeGranularity = {};
61929     VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
61930     VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
61931     VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
61932     VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
61933     VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
61934     VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
61935 
61936   };
61937   static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
61938   static_assert( std::is_standard_layout<PhysicalDeviceConservativeRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
61939 
61940   template <>
61941   struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
61942   {
61943     using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
61944   };
61945 
61946   struct PhysicalDeviceCooperativeMatrixFeaturesNV
61947   {
61948     static const bool allowDuplicate = false;
61949     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
61950 
61951 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61952     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}) VULKAN_HPP_NOEXCEPT
61953     : cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
61954     {}
61955 
61956     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61957 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61958     PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61959     {
61960       *this = rhs;
61961     }
61962 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61963 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61964     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61965     {
61966       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs );
61967       return *this;
61968     }
61969 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61970     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61971     {
61972       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) );
61973       return *this;
61974     }
61975 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61976     PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61977     {
61978       pNext = pNext_;
61979       return *this;
61980     }
61981 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61982     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
61983     {
61984       cooperativeMatrix = cooperativeMatrix_;
61985       return *this;
61986     }
61987 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61988     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
61989     {
61990       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
61991       return *this;
61992     }
61993 
61994 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV61995     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
61996     {
61997       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
61998     }
61999 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62000     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
62001     {
62002       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
62003     }
62004 
62005 
62006 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62007     auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const& ) const = default;
62008 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62009     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62010     {
62011       return ( sType == rhs.sType )
62012           && ( pNext == rhs.pNext )
62013           && ( cooperativeMatrix == rhs.cooperativeMatrix )
62014           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
62015     }
62016 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62017     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62018     {
62019       return !operator==( rhs );
62020     }
62021 #endif
62022 
62023 
62024 
62025   public:
62026     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
62027     void* pNext = {};
62028     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
62029     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
62030 
62031   };
62032   static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" );
62033   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62034 
62035   template <>
62036   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
62037   {
62038     using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
62039   };
62040 
62041   struct PhysicalDeviceCooperativeMatrixPropertiesNV
62042   {
62043     static const bool allowDuplicate = false;
62044     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
62045 
62046 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62047     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}) VULKAN_HPP_NOEXCEPT
62048     : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
62049     {}
62050 
62051     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62052 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62053     PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62054     {
62055       *this = rhs;
62056     }
62057 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62058 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62059     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62060     {
62061       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs );
62062       return *this;
62063     }
62064 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62065     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62066     {
62067       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) );
62068       return *this;
62069     }
62070 
62071 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62072     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
62073     {
62074       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
62075     }
62076 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62077     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
62078     {
62079       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
62080     }
62081 
62082 
62083 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62084     auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const& ) const = default;
62085 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62086     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62087     {
62088       return ( sType == rhs.sType )
62089           && ( pNext == rhs.pNext )
62090           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
62091     }
62092 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62093     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62094     {
62095       return !operator==( rhs );
62096     }
62097 #endif
62098 
62099 
62100 
62101   public:
62102     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
62103     void* pNext = {};
62104     VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
62105 
62106   };
62107   static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
62108   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
62109 
62110   template <>
62111   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
62112   {
62113     using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
62114   };
62115 
62116   struct PhysicalDeviceCornerSampledImageFeaturesNV
62117   {
62118     static const bool allowDuplicate = false;
62119     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
62120 
62121 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62122     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {}) VULKAN_HPP_NOEXCEPT
62123     : cornerSampledImage( cornerSampledImage_ )
62124     {}
62125 
62126     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62127 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62128     PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62129     {
62130       *this = rhs;
62131     }
62132 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62133 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62134     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62135     {
62136       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs );
62137       return *this;
62138     }
62139 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62140     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62141     {
62142       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) );
62143       return *this;
62144     }
62145 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62146     PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62147     {
62148       pNext = pNext_;
62149       return *this;
62150     }
62151 
setCornerSampledImageVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62152     PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
62153     {
62154       cornerSampledImage = cornerSampledImage_;
62155       return *this;
62156     }
62157 
62158 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62159     operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62160     {
62161       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
62162     }
62163 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62164     operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
62165     {
62166       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
62167     }
62168 
62169 
62170 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62171     auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const& ) const = default;
62172 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62173     bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62174     {
62175       return ( sType == rhs.sType )
62176           && ( pNext == rhs.pNext )
62177           && ( cornerSampledImage == rhs.cornerSampledImage );
62178     }
62179 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62180     bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62181     {
62182       return !operator==( rhs );
62183     }
62184 #endif
62185 
62186 
62187 
62188   public:
62189     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
62190     void* pNext = {};
62191     VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
62192 
62193   };
62194   static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" );
62195   static_assert( std::is_standard_layout<PhysicalDeviceCornerSampledImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62196 
62197   template <>
62198   struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
62199   {
62200     using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
62201   };
62202 
62203   struct PhysicalDeviceCoverageReductionModeFeaturesNV
62204   {
62205     static const bool allowDuplicate = false;
62206     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
62207 
62208 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62209     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {}) VULKAN_HPP_NOEXCEPT
62210     : coverageReductionMode( coverageReductionMode_ )
62211     {}
62212 
62213     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62214 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62215     PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62216     {
62217       *this = rhs;
62218     }
62219 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62220 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62221     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62222     {
62223       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs );
62224       return *this;
62225     }
62226 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62227     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62228     {
62229       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) );
62230       return *this;
62231     }
62232 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62233     PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62234     {
62235       pNext = pNext_;
62236       return *this;
62237     }
62238 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62239     PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
62240     {
62241       coverageReductionMode = coverageReductionMode_;
62242       return *this;
62243     }
62244 
62245 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62246     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62247     {
62248       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
62249     }
62250 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62251     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
62252     {
62253       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
62254     }
62255 
62256 
62257 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62258     auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const& ) const = default;
62259 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62260     bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62261     {
62262       return ( sType == rhs.sType )
62263           && ( pNext == rhs.pNext )
62264           && ( coverageReductionMode == rhs.coverageReductionMode );
62265     }
62266 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62267     bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62268     {
62269       return !operator==( rhs );
62270     }
62271 #endif
62272 
62273 
62274 
62275   public:
62276     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
62277     void* pNext = {};
62278     VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
62279 
62280   };
62281   static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" );
62282   static_assert( std::is_standard_layout<PhysicalDeviceCoverageReductionModeFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62283 
62284   template <>
62285   struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
62286   {
62287     using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
62288   };
62289 
62290   struct PhysicalDeviceCustomBorderColorFeaturesEXT
62291   {
62292     static const bool allowDuplicate = false;
62293     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
62294 
62295 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62296     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {}) VULKAN_HPP_NOEXCEPT
62297     : customBorderColors( customBorderColors_ ), customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
62298     {}
62299 
62300     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62301 
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62302     PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62303     {
62304       *this = rhs;
62305     }
62306 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62307 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62308     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62309     {
62310       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs );
62311       return *this;
62312     }
62313 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62314     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62315     {
62316       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) );
62317       return *this;
62318     }
62319 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62320     PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62321     {
62322       pNext = pNext_;
62323       return *this;
62324     }
62325 
setCustomBorderColorsVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62326     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
62327     {
62328       customBorderColors = customBorderColors_;
62329       return *this;
62330     }
62331 
setCustomBorderColorWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62332     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
62333     {
62334       customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
62335       return *this;
62336     }
62337 
62338 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62339     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62340     {
62341       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
62342     }
62343 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62344     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62345     {
62346       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
62347     }
62348 
62349 
62350 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62351     auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const& ) const = default;
62352 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62353     bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62354     {
62355       return ( sType == rhs.sType )
62356           && ( pNext == rhs.pNext )
62357           && ( customBorderColors == rhs.customBorderColors )
62358           && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
62359     }
62360 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62361     bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62362     {
62363       return !operator==( rhs );
62364     }
62365 #endif
62366 
62367 
62368 
62369   public:
62370     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
62371     void* pNext = {};
62372     VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
62373     VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
62374 
62375   };
62376   static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), "struct and wrapper have different size!" );
62377   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62378 
62379   template <>
62380   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
62381   {
62382     using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
62383   };
62384 
62385   struct PhysicalDeviceCustomBorderColorPropertiesEXT
62386   {
62387     static const bool allowDuplicate = false;
62388     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
62389 
62390 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62391     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t maxCustomBorderColorSamplers_ = {}) VULKAN_HPP_NOEXCEPT
62392     : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
62393     {}
62394 
62395     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62396 
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62397     PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62398     {
62399       *this = rhs;
62400     }
62401 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62402 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62403     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62404     {
62405       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs );
62406       return *this;
62407     }
62408 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62409     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62410     {
62411       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) );
62412       return *this;
62413     }
62414 
62415 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62416     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
62417     {
62418       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
62419     }
62420 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62421     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
62422     {
62423       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
62424     }
62425 
62426 
62427 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62428     auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const& ) const = default;
62429 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62430     bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62431     {
62432       return ( sType == rhs.sType )
62433           && ( pNext == rhs.pNext )
62434           && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
62435     }
62436 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT62437     bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62438     {
62439       return !operator==( rhs );
62440     }
62441 #endif
62442 
62443 
62444 
62445   public:
62446     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
62447     void* pNext = {};
62448     uint32_t maxCustomBorderColorSamplers = {};
62449 
62450   };
62451   static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), "struct and wrapper have different size!" );
62452   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
62453 
62454   template <>
62455   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
62456   {
62457     using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
62458   };
62459 
62460   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
62461   {
62462     static const bool allowDuplicate = false;
62463     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
62464 
62465 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62466     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {}) VULKAN_HPP_NOEXCEPT
62467     : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
62468     {}
62469 
62470     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62471 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62472     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62473     {
62474       *this = rhs;
62475     }
62476 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62477 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62478     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62479     {
62480       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs );
62481       return *this;
62482     }
62483 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62484     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62485     {
62486       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) );
62487       return *this;
62488     }
62489 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62490     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62491     {
62492       pNext = pNext_;
62493       return *this;
62494     }
62495 
setDedicatedAllocationImageAliasingVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62496     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
62497     {
62498       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
62499       return *this;
62500     }
62501 
62502 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62503     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62504     {
62505       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
62506     }
62507 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62508     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
62509     {
62510       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
62511     }
62512 
62513 
62514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62515     auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& ) const = default;
62516 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62517     bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62518     {
62519       return ( sType == rhs.sType )
62520           && ( pNext == rhs.pNext )
62521           && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
62522     }
62523 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV62524     bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62525     {
62526       return !operator==( rhs );
62527     }
62528 #endif
62529 
62530 
62531 
62532   public:
62533     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
62534     void* pNext = {};
62535     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
62536 
62537   };
62538   static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" );
62539   static_assert( std::is_standard_layout<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62540 
62541   template <>
62542   struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
62543   {
62544     using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
62545   };
62546 
62547   struct PhysicalDeviceDepthClipEnableFeaturesEXT
62548   {
62549     static const bool allowDuplicate = false;
62550     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
62551 
62552 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62553     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
62554     : depthClipEnable( depthClipEnable_ )
62555     {}
62556 
62557     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62558 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62559     PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62560     {
62561       *this = rhs;
62562     }
62563 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62564 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62565     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62566     {
62567       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs );
62568       return *this;
62569     }
62570 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62571     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62572     {
62573       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) );
62574       return *this;
62575     }
62576 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62577     PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62578     {
62579       pNext = pNext_;
62580       return *this;
62581     }
62582 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62583     PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
62584     {
62585       depthClipEnable = depthClipEnable_;
62586       return *this;
62587     }
62588 
62589 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62590     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62591     {
62592       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
62593     }
62594 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62595     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62596     {
62597       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
62598     }
62599 
62600 
62601 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62602     auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const& ) const = default;
62603 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62604     bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62605     {
62606       return ( sType == rhs.sType )
62607           && ( pNext == rhs.pNext )
62608           && ( depthClipEnable == rhs.depthClipEnable );
62609     }
62610 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT62611     bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62612     {
62613       return !operator==( rhs );
62614     }
62615 #endif
62616 
62617 
62618 
62619   public:
62620     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
62621     void* pNext = {};
62622     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
62623 
62624   };
62625   static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" );
62626   static_assert( std::is_standard_layout<PhysicalDeviceDepthClipEnableFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62627 
62628   template <>
62629   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
62630   {
62631     using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
62632   };
62633 
62634   struct PhysicalDeviceDepthStencilResolveProperties
62635   {
62636     static const bool allowDuplicate = false;
62637     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
62638 
62639 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62640     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
62641     : supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ )
62642     {}
62643 
62644     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62645 
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62646     PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62647     {
62648       *this = rhs;
62649     }
62650 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62651 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62652     PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62653     {
62654       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>( &rhs );
62655       return *this;
62656     }
62657 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62658     PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62659     {
62660       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDepthStencilResolveProperties ) );
62661       return *this;
62662     }
62663 
62664 
operator VkPhysicalDeviceDepthStencilResolveProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62665     operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT
62666     {
62667       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>( this );
62668     }
62669 
operator VkPhysicalDeviceDepthStencilResolveProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62670     operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
62671     {
62672       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>( this );
62673     }
62674 
62675 
62676 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62677     auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const& ) const = default;
62678 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62679     bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
62680     {
62681       return ( sType == rhs.sType )
62682           && ( pNext == rhs.pNext )
62683           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
62684           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
62685           && ( independentResolveNone == rhs.independentResolveNone )
62686           && ( independentResolve == rhs.independentResolve );
62687     }
62688 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties62689     bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
62690     {
62691       return !operator==( rhs );
62692     }
62693 #endif
62694 
62695 
62696 
62697   public:
62698     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
62699     void* pNext = {};
62700     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
62701     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
62702     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
62703     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
62704 
62705   };
62706   static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" );
62707   static_assert( std::is_standard_layout<PhysicalDeviceDepthStencilResolveProperties>::value, "struct wrapper is not a standard layout!" );
62708 
62709   template <>
62710   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
62711   {
62712     using Type = PhysicalDeviceDepthStencilResolveProperties;
62713   };
62714   using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
62715 
62716   struct PhysicalDeviceDescriptorIndexingFeatures
62717   {
62718     static const bool allowDuplicate = false;
62719     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
62720 
62721 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62722     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
62723     : 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_ )
62724     {}
62725 
62726     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62727 
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62728     PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62729     {
62730       *this = rhs;
62731     }
62732 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62733 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62734     PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62735     {
62736       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs );
62737       return *this;
62738     }
62739 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62740     PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62741     {
62742       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingFeatures ) );
62743       return *this;
62744     }
62745 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62746     PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62747     {
62748       pNext = pNext_;
62749       return *this;
62750     }
62751 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62752     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
62753     {
62754       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
62755       return *this;
62756     }
62757 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62758     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
62759     {
62760       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
62761       return *this;
62762     }
62763 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62764     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
62765     {
62766       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
62767       return *this;
62768     }
62769 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62770     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
62771     {
62772       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
62773       return *this;
62774     }
62775 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62776     PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
62777     {
62778       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
62779       return *this;
62780     }
62781 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62782     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
62783     {
62784       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
62785       return *this;
62786     }
62787 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62788     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
62789     {
62790       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
62791       return *this;
62792     }
62793 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62794     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
62795     {
62796       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
62797       return *this;
62798     }
62799 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62800     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
62801     {
62802       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
62803       return *this;
62804     }
62805 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62806     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
62807     {
62808       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
62809       return *this;
62810     }
62811 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62812     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
62813     {
62814       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
62815       return *this;
62816     }
62817 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62818     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
62819     {
62820       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
62821       return *this;
62822     }
62823 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62824     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
62825     {
62826       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
62827       return *this;
62828     }
62829 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62830     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
62831     {
62832       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
62833       return *this;
62834     }
62835 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62836     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
62837     {
62838       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
62839       return *this;
62840     }
62841 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62842     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
62843     {
62844       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
62845       return *this;
62846     }
62847 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62848     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
62849     {
62850       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
62851       return *this;
62852     }
62853 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62854     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
62855     {
62856       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
62857       return *this;
62858     }
62859 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62860     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
62861     {
62862       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
62863       return *this;
62864     }
62865 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62866     PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
62867     {
62868       runtimeDescriptorArray = runtimeDescriptorArray_;
62869       return *this;
62870     }
62871 
62872 
operator VkPhysicalDeviceDescriptorIndexingFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62873     operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT
62874     {
62875       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
62876     }
62877 
operator VkPhysicalDeviceDescriptorIndexingFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62878     operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
62879     {
62880       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
62881     }
62882 
62883 
62884 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62885     auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const& ) const = default;
62886 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62887     bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62888     {
62889       return ( sType == rhs.sType )
62890           && ( pNext == rhs.pNext )
62891           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
62892           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
62893           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
62894           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
62895           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
62896           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
62897           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
62898           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
62899           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
62900           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
62901           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
62902           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
62903           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
62904           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
62905           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
62906           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
62907           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
62908           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
62909           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
62910           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
62911     }
62912 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures62913     bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62914     {
62915       return !operator==( rhs );
62916     }
62917 #endif
62918 
62919 
62920 
62921   public:
62922     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
62923     void* pNext = {};
62924     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
62925     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
62926     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
62927     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
62928     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
62929     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
62930     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
62931     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
62932     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
62933     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
62934     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
62935     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
62936     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
62937     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
62938     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
62939     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
62940     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
62941     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
62942     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
62943     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
62944 
62945   };
62946   static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" );
62947   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingFeatures>::value, "struct wrapper is not a standard layout!" );
62948 
62949   template <>
62950   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
62951   {
62952     using Type = PhysicalDeviceDescriptorIndexingFeatures;
62953   };
62954   using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
62955 
62956   struct PhysicalDeviceDescriptorIndexingProperties
62957   {
62958     static const bool allowDuplicate = false;
62959     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
62960 
62961 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties62962     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
62963     : 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_ )
62964     {}
62965 
62966     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62967 
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties62968     PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62969     {
62970       *this = rhs;
62971     }
62972 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62973 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties62974     PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62975     {
62976       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>( &rhs );
62977       return *this;
62978     }
62979 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties62980     PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62981     {
62982       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingProperties ) );
62983       return *this;
62984     }
62985 
62986 
operator VkPhysicalDeviceDescriptorIndexingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties62987     operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT
62988     {
62989       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>( this );
62990     }
62991 
operator VkPhysicalDeviceDescriptorIndexingProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties62992     operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
62993     {
62994       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>( this );
62995     }
62996 
62997 
62998 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62999     auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const& ) const = default;
63000 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63001     bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63002     {
63003       return ( sType == rhs.sType )
63004           && ( pNext == rhs.pNext )
63005           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
63006           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
63007           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
63008           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
63009           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
63010           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
63011           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
63012           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
63013           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
63014           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
63015           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
63016           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
63017           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
63018           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
63019           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
63020           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
63021           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
63022           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
63023           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
63024           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
63025           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
63026           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
63027           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
63028     }
63029 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63030     bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63031     {
63032       return !operator==( rhs );
63033     }
63034 #endif
63035 
63036 
63037 
63038   public:
63039     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
63040     void* pNext = {};
63041     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
63042     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
63043     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
63044     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
63045     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
63046     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
63047     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
63048     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
63049     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
63050     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
63051     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
63052     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
63053     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
63054     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
63055     uint32_t maxPerStageUpdateAfterBindResources = {};
63056     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
63057     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
63058     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
63059     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
63060     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
63061     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
63062     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
63063     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
63064 
63065   };
63066   static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" );
63067   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingProperties>::value, "struct wrapper is not a standard layout!" );
63068 
63069   template <>
63070   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
63071   {
63072     using Type = PhysicalDeviceDescriptorIndexingProperties;
63073   };
63074   using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
63075 
63076   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
63077   {
63078     static const bool allowDuplicate = false;
63079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63080 
63081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63082     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {}) VULKAN_HPP_NOEXCEPT
63083     : deviceGeneratedCommands( deviceGeneratedCommands_ )
63084     {}
63085 
63086     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63087 
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63088     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63089     {
63090       *this = rhs;
63091     }
63092 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63093 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63094     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63095     {
63096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs );
63097       return *this;
63098     }
63099 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63100     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63101     {
63102       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) );
63103       return *this;
63104     }
63105 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63106     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63107     {
63108       pNext = pNext_;
63109       return *this;
63110     }
63111 
setDeviceGeneratedCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63112     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
63113     {
63114       deviceGeneratedCommands = deviceGeneratedCommands_;
63115       return *this;
63116     }
63117 
63118 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63119     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63120     {
63121       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
63122     }
63123 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63124     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
63125     {
63126       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
63127     }
63128 
63129 
63130 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63131     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& ) const = default;
63132 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63133     bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63134     {
63135       return ( sType == rhs.sType )
63136           && ( pNext == rhs.pNext )
63137           && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
63138     }
63139 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63140     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63141     {
63142       return !operator==( rhs );
63143     }
63144 #endif
63145 
63146 
63147 
63148   public:
63149     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63150     void* pNext = {};
63151     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
63152 
63153   };
63154   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), "struct and wrapper have different size!" );
63155   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63156 
63157   template <>
63158   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
63159   {
63160     using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63161   };
63162 
63163   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
63164   {
63165     static const bool allowDuplicate = false;
63166     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63167 
63168 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63169     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
63170     : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ), maxIndirectSequenceCount( maxIndirectSequenceCount_ ), maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ), maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ), maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ), maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ), minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ), minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ), minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
63171     {}
63172 
63173     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63174 
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63175     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63176     {
63177       *this = rhs;
63178     }
63179 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63180 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63181     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63182     {
63183       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs );
63184       return *this;
63185     }
63186 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63187     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63188     {
63189       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) );
63190       return *this;
63191     }
63192 
63193 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63194     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
63195     {
63196       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
63197     }
63198 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63199     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
63200     {
63201       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
63202     }
63203 
63204 
63205 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63206     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& ) const = default;
63207 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63208     bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63209     {
63210       return ( sType == rhs.sType )
63211           && ( pNext == rhs.pNext )
63212           && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount )
63213           && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount )
63214           && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount )
63215           && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount )
63216           && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset )
63217           && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride )
63218           && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment )
63219           && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment )
63220           && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
63221     }
63222 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63223     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63224     {
63225       return !operator==( rhs );
63226     }
63227 #endif
63228 
63229 
63230 
63231   public:
63232     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63233     void* pNext = {};
63234     uint32_t maxGraphicsShaderGroupCount = {};
63235     uint32_t maxIndirectSequenceCount = {};
63236     uint32_t maxIndirectCommandsTokenCount = {};
63237     uint32_t maxIndirectCommandsStreamCount = {};
63238     uint32_t maxIndirectCommandsTokenOffset = {};
63239     uint32_t maxIndirectCommandsStreamStride = {};
63240     uint32_t minSequencesCountBufferOffsetAlignment = {};
63241     uint32_t minSequencesIndexBufferOffsetAlignment = {};
63242     uint32_t minIndirectCommandsBufferOffsetAlignment = {};
63243 
63244   };
63245   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), "struct and wrapper have different size!" );
63246   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
63247 
63248   template <>
63249   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
63250   {
63251     using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63252   };
63253 
63254   struct PhysicalDeviceDeviceMemoryReportFeaturesEXT
63255   {
63256     static const bool allowDuplicate = false;
63257     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
63258 
63259 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63260     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {}) VULKAN_HPP_NOEXCEPT
63261     : deviceMemoryReport( deviceMemoryReport_ )
63262     {}
63263 
63264     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63265 
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63266     PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63267     {
63268       *this = rhs;
63269     }
63270 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63271 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63272     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63273     {
63274       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs );
63275       return *this;
63276     }
63277 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63278     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63279     {
63280       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) );
63281       return *this;
63282     }
63283 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63284     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63285     {
63286       pNext = pNext_;
63287       return *this;
63288     }
63289 
setDeviceMemoryReportVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63290     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
63291     {
63292       deviceMemoryReport = deviceMemoryReport_;
63293       return *this;
63294     }
63295 
63296 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63297     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63298     {
63299       return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
63300     }
63301 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63302     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63303     {
63304       return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
63305     }
63306 
63307 
63308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63309     auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& ) const = default;
63310 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63311     bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63312     {
63313       return ( sType == rhs.sType )
63314           && ( pNext == rhs.pNext )
63315           && ( deviceMemoryReport == rhs.deviceMemoryReport );
63316     }
63317 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63318     bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63319     {
63320       return !operator==( rhs );
63321     }
63322 #endif
63323 
63324 
63325 
63326   public:
63327     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
63328     void* pNext = {};
63329     VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {};
63330 
63331   };
63332   static_assert( sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) == sizeof( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT ), "struct and wrapper have different size!" );
63333   static_assert( std::is_standard_layout<PhysicalDeviceDeviceMemoryReportFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63334 
63335   template <>
63336   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT>
63337   {
63338     using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
63339   };
63340 
63341   struct PhysicalDeviceDiagnosticsConfigFeaturesNV
63342   {
63343     static const bool allowDuplicate = false;
63344     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
63345 
63346 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63347     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {}) VULKAN_HPP_NOEXCEPT
63348     : diagnosticsConfig( diagnosticsConfig_ )
63349     {}
63350 
63351     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63352 
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63353     PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63354     {
63355       *this = rhs;
63356     }
63357 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63358 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63359     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63360     {
63361       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs );
63362       return *this;
63363     }
63364 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63365     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63366     {
63367       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) );
63368       return *this;
63369     }
63370 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63371     PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63372     {
63373       pNext = pNext_;
63374       return *this;
63375     }
63376 
setDiagnosticsConfigVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63377     PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
63378     {
63379       diagnosticsConfig = diagnosticsConfig_;
63380       return *this;
63381     }
63382 
63383 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63384     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63385     {
63386       return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
63387     }
63388 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63389     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
63390     {
63391       return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
63392     }
63393 
63394 
63395 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63396     auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const& ) const = default;
63397 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63398     bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63399     {
63400       return ( sType == rhs.sType )
63401           && ( pNext == rhs.pNext )
63402           && ( diagnosticsConfig == rhs.diagnosticsConfig );
63403     }
63404 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63405     bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63406     {
63407       return !operator==( rhs );
63408     }
63409 #endif
63410 
63411 
63412 
63413   public:
63414     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
63415     void* pNext = {};
63416     VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
63417 
63418   };
63419   static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), "struct and wrapper have different size!" );
63420   static_assert( std::is_standard_layout<PhysicalDeviceDiagnosticsConfigFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63421 
63422   template <>
63423   struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
63424   {
63425     using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
63426   };
63427 
63428   struct PhysicalDeviceDiscardRectanglePropertiesEXT
63429   {
63430     static const bool allowDuplicate = false;
63431     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
63432 
63433 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63434     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT(uint32_t maxDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT
63435     : maxDiscardRectangles( maxDiscardRectangles_ )
63436     {}
63437 
63438     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63439 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63440     PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63441     {
63442       *this = rhs;
63443     }
63444 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63445 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63446     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63447     {
63448       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs );
63449       return *this;
63450     }
63451 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63452     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63453     {
63454       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) );
63455       return *this;
63456     }
63457 
63458 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63459     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
63460     {
63461       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
63462     }
63463 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63464     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
63465     {
63466       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
63467     }
63468 
63469 
63470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63471     auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const& ) const = default;
63472 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63473     bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63474     {
63475       return ( sType == rhs.sType )
63476           && ( pNext == rhs.pNext )
63477           && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
63478     }
63479 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT63480     bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63481     {
63482       return !operator==( rhs );
63483     }
63484 #endif
63485 
63486 
63487 
63488   public:
63489     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
63490     void* pNext = {};
63491     uint32_t maxDiscardRectangles = {};
63492 
63493   };
63494   static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
63495   static_assert( std::is_standard_layout<PhysicalDeviceDiscardRectanglePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
63496 
63497   template <>
63498   struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
63499   {
63500     using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
63501   };
63502 
63503   struct PhysicalDeviceDriverProperties
63504   {
63505     static const bool allowDuplicate = false;
63506     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
63507 
63508 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63509     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
63510     : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ )
63511     {}
63512 
63513     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63514 
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63515     PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63516     {
63517       *this = rhs;
63518     }
63519 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63520 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63521     PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63522     {
63523       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>( &rhs );
63524       return *this;
63525     }
63526 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63527     PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63528     {
63529       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDriverProperties ) );
63530       return *this;
63531     }
63532 
63533 
operator VkPhysicalDeviceDriverProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63534     operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT
63535     {
63536       return *reinterpret_cast<const VkPhysicalDeviceDriverProperties*>( this );
63537     }
63538 
operator VkPhysicalDeviceDriverProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63539     operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
63540     {
63541       return *reinterpret_cast<VkPhysicalDeviceDriverProperties*>( this );
63542     }
63543 
63544 
63545 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63546     auto operator<=>( PhysicalDeviceDriverProperties const& ) const = default;
63547 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63548     bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63549     {
63550       return ( sType == rhs.sType )
63551           && ( pNext == rhs.pNext )
63552           && ( driverID == rhs.driverID )
63553           && ( driverName == rhs.driverName )
63554           && ( driverInfo == rhs.driverInfo )
63555           && ( conformanceVersion == rhs.conformanceVersion );
63556     }
63557 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties63558     bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63559     {
63560       return !operator==( rhs );
63561     }
63562 #endif
63563 
63564 
63565 
63566   public:
63567     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
63568     void* pNext = {};
63569     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
63570     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
63571     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
63572     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
63573 
63574   };
63575   static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" );
63576   static_assert( std::is_standard_layout<PhysicalDeviceDriverProperties>::value, "struct wrapper is not a standard layout!" );
63577 
63578   template <>
63579   struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
63580   {
63581     using Type = PhysicalDeviceDriverProperties;
63582   };
63583   using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
63584 
63585   struct PhysicalDeviceExclusiveScissorFeaturesNV
63586   {
63587     static const bool allowDuplicate = false;
63588     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
63589 
63590 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63591     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {}) VULKAN_HPP_NOEXCEPT
63592     : exclusiveScissor( exclusiveScissor_ )
63593     {}
63594 
63595     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63596 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63597     PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63598     {
63599       *this = rhs;
63600     }
63601 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63602 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63603     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63604     {
63605       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs );
63606       return *this;
63607     }
63608 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63609     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63610     {
63611       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) );
63612       return *this;
63613     }
63614 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63615     PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63616     {
63617       pNext = pNext_;
63618       return *this;
63619     }
63620 
setExclusiveScissorVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63621     PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
63622     {
63623       exclusiveScissor = exclusiveScissor_;
63624       return *this;
63625     }
63626 
63627 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63628     operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63629     {
63630       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
63631     }
63632 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63633     operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
63634     {
63635       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
63636     }
63637 
63638 
63639 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63640     auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const& ) const = default;
63641 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63642     bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63643     {
63644       return ( sType == rhs.sType )
63645           && ( pNext == rhs.pNext )
63646           && ( exclusiveScissor == rhs.exclusiveScissor );
63647     }
63648 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV63649     bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63650     {
63651       return !operator==( rhs );
63652     }
63653 #endif
63654 
63655 
63656 
63657   public:
63658     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
63659     void* pNext = {};
63660     VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
63661 
63662   };
63663   static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" );
63664   static_assert( std::is_standard_layout<PhysicalDeviceExclusiveScissorFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63665 
63666   template <>
63667   struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
63668   {
63669     using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
63670   };
63671 
63672   struct PhysicalDeviceExtendedDynamicStateFeaturesEXT
63673   {
63674     static const bool allowDuplicate = false;
63675     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
63676 
63677 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63678     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {}) VULKAN_HPP_NOEXCEPT
63679     : extendedDynamicState( extendedDynamicState_ )
63680     {}
63681 
63682     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63683 
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63684     PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63685     {
63686       *this = rhs;
63687     }
63688 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63689 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63690     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63691     {
63692       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs );
63693       return *this;
63694     }
63695 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63696     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63697     {
63698       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) );
63699       return *this;
63700     }
63701 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63702     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63703     {
63704       pNext = pNext_;
63705       return *this;
63706     }
63707 
setExtendedDynamicStateVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63708     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
63709     {
63710       extendedDynamicState = extendedDynamicState_;
63711       return *this;
63712     }
63713 
63714 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63715     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63716     {
63717       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
63718     }
63719 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63720     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63721     {
63722       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
63723     }
63724 
63725 
63726 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63727     auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& ) const = default;
63728 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63729     bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63730     {
63731       return ( sType == rhs.sType )
63732           && ( pNext == rhs.pNext )
63733           && ( extendedDynamicState == rhs.extendedDynamicState );
63734     }
63735 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT63736     bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63737     {
63738       return !operator==( rhs );
63739     }
63740 #endif
63741 
63742 
63743 
63744   public:
63745     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
63746     void* pNext = {};
63747     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {};
63748 
63749   };
63750   static_assert( sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) == sizeof( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT ), "struct and wrapper have different size!" );
63751   static_assert( std::is_standard_layout<PhysicalDeviceExtendedDynamicStateFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63752 
63753   template <>
63754   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT>
63755   {
63756     using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
63757   };
63758 
63759   struct PhysicalDeviceExternalImageFormatInfo
63760   {
63761     static const bool allowDuplicate = false;
63762     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
63763 
63764 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63765     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
63766     : handleType( handleType_ )
63767     {}
63768 
63769     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63770 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63771     PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
63772     {
63773       *this = rhs;
63774     }
63775 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63776 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63777     PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
63778     {
63779       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>( &rhs );
63780       return *this;
63781     }
63782 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63783     PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
63784     {
63785       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalImageFormatInfo ) );
63786       return *this;
63787     }
63788 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63789     PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
63790     {
63791       pNext = pNext_;
63792       return *this;
63793     }
63794 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63795     PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
63796     {
63797       handleType = handleType_;
63798       return *this;
63799     }
63800 
63801 
operator VkPhysicalDeviceExternalImageFormatInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63802     operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT
63803     {
63804       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
63805     }
63806 
operator VkPhysicalDeviceExternalImageFormatInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63807     operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
63808     {
63809       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
63810     }
63811 
63812 
63813 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63814     auto operator<=>( PhysicalDeviceExternalImageFormatInfo const& ) const = default;
63815 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63816     bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
63817     {
63818       return ( sType == rhs.sType )
63819           && ( pNext == rhs.pNext )
63820           && ( handleType == rhs.handleType );
63821     }
63822 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo63823     bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
63824     {
63825       return !operator==( rhs );
63826     }
63827 #endif
63828 
63829 
63830 
63831   public:
63832     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
63833     const void* pNext = {};
63834     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
63835 
63836   };
63837   static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" );
63838   static_assert( std::is_standard_layout<PhysicalDeviceExternalImageFormatInfo>::value, "struct wrapper is not a standard layout!" );
63839 
63840   template <>
63841   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
63842   {
63843     using Type = PhysicalDeviceExternalImageFormatInfo;
63844   };
63845   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
63846 
63847   struct PhysicalDeviceExternalMemoryHostPropertiesEXT
63848   {
63849     static const bool allowDuplicate = false;
63850     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
63851 
63852 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63853     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {}) VULKAN_HPP_NOEXCEPT
63854     : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
63855     {}
63856 
63857     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63858 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63859     PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63860     {
63861       *this = rhs;
63862     }
63863 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63864 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63865     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63866     {
63867       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs );
63868       return *this;
63869     }
63870 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63871     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63872     {
63873       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) );
63874       return *this;
63875     }
63876 
63877 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63878     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
63879     {
63880       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
63881     }
63882 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63883     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
63884     {
63885       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
63886     }
63887 
63888 
63889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63890     auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const& ) const = default;
63891 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63892     bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63893     {
63894       return ( sType == rhs.sType )
63895           && ( pNext == rhs.pNext )
63896           && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
63897     }
63898 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT63899     bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63900     {
63901       return !operator==( rhs );
63902     }
63903 #endif
63904 
63905 
63906 
63907   public:
63908     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
63909     void* pNext = {};
63910     VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
63911 
63912   };
63913   static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" );
63914   static_assert( std::is_standard_layout<PhysicalDeviceExternalMemoryHostPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
63915 
63916   template <>
63917   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
63918   {
63919     using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
63920   };
63921 
63922   struct PhysicalDeviceFloatControlsProperties
63923   {
63924     static const bool allowDuplicate = false;
63925     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
63926 
63927 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63928     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
63929     : 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_ )
63930     {}
63931 
63932     VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63933 
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63934     PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63935     {
63936       *this = rhs;
63937     }
63938 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63939 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63940     PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63941     {
63942       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>( &rhs );
63943       return *this;
63944     }
63945 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63946     PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63947     {
63948       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFloatControlsProperties ) );
63949       return *this;
63950     }
63951 
63952 
operator VkPhysicalDeviceFloatControlsProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63953     operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT
63954     {
63955       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>( this );
63956     }
63957 
operator VkPhysicalDeviceFloatControlsProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63958     operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
63959     {
63960       return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>( this );
63961     }
63962 
63963 
63964 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63965     auto operator<=>( PhysicalDeviceFloatControlsProperties const& ) const = default;
63966 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63967     bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63968     {
63969       return ( sType == rhs.sType )
63970           && ( pNext == rhs.pNext )
63971           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
63972           && ( roundingModeIndependence == rhs.roundingModeIndependence )
63973           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
63974           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
63975           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
63976           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
63977           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
63978           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
63979           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
63980           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
63981           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
63982           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
63983           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
63984           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
63985           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
63986           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
63987           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
63988     }
63989 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties63990     bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63991     {
63992       return !operator==( rhs );
63993     }
63994 #endif
63995 
63996 
63997 
63998   public:
63999     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
64000     void* pNext = {};
64001     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
64002     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
64003     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
64004     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
64005     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
64006     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
64007     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
64008     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
64009     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
64010     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
64011     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
64012     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
64013     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
64014     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
64015     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
64016     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
64017     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
64018 
64019   };
64020   static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" );
64021   static_assert( std::is_standard_layout<PhysicalDeviceFloatControlsProperties>::value, "struct wrapper is not a standard layout!" );
64022 
64023   template <>
64024   struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
64025   {
64026     using Type = PhysicalDeviceFloatControlsProperties;
64027   };
64028   using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
64029 
64030   struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
64031   {
64032     static const bool allowDuplicate = false;
64033     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
64034 
64035 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64036     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {}) VULKAN_HPP_NOEXCEPT
64037     : fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
64038     {}
64039 
64040     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64041 
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64042     PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64043     {
64044       *this = rhs;
64045     }
64046 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64047 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64048     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64049     {
64050       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs );
64051       return *this;
64052     }
64053 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64054     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64055     {
64056       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) );
64057       return *this;
64058     }
64059 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64060     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64061     {
64062       pNext = pNext_;
64063       return *this;
64064     }
64065 
setFragmentDensityMapDeferredVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64066     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
64067     {
64068       fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
64069       return *this;
64070     }
64071 
64072 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64073     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64074     {
64075       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
64076     }
64077 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64078     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
64079     {
64080       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
64081     }
64082 
64083 
64084 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64085     auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& ) const = default;
64086 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64087     bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64088     {
64089       return ( sType == rhs.sType )
64090           && ( pNext == rhs.pNext )
64091           && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred );
64092     }
64093 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64094     bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64095     {
64096       return !operator==( rhs );
64097     }
64098 #endif
64099 
64100 
64101 
64102   public:
64103     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
64104     void* pNext = {};
64105     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {};
64106 
64107   };
64108   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT ), "struct and wrapper have different size!" );
64109   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64110 
64111   template <>
64112   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT>
64113   {
64114     using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
64115   };
64116 
64117   struct PhysicalDeviceFragmentDensityMap2PropertiesEXT
64118   {
64119     static const bool allowDuplicate = false;
64120     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
64121 
64122 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64123     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, uint32_t maxSubsampledArrayLayers_ = {}, uint32_t maxDescriptorSetSubsampledSamplers_ = {}) VULKAN_HPP_NOEXCEPT
64124     : subsampledLoads( subsampledLoads_ ), subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ), maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ), maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
64125     {}
64126 
64127     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64128 
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64129     PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64130     {
64131       *this = rhs;
64132     }
64133 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64134 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64135     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64136     {
64137       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs );
64138       return *this;
64139     }
64140 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64141     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64142     {
64143       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) );
64144       return *this;
64145     }
64146 
64147 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64148     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64149     {
64150       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
64151     }
64152 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64153     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
64154     {
64155       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
64156     }
64157 
64158 
64159 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64160     auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& ) const = default;
64161 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64162     bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64163     {
64164       return ( sType == rhs.sType )
64165           && ( pNext == rhs.pNext )
64166           && ( subsampledLoads == rhs.subsampledLoads )
64167           && ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess )
64168           && ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers )
64169           && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers );
64170     }
64171 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64172     bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64173     {
64174       return !operator==( rhs );
64175     }
64176 #endif
64177 
64178 
64179 
64180   public:
64181     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
64182     void* pNext = {};
64183     VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {};
64184     VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {};
64185     uint32_t maxSubsampledArrayLayers = {};
64186     uint32_t maxDescriptorSetSubsampledSamplers = {};
64187 
64188   };
64189   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT ), "struct and wrapper have different size!" );
64190   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64191 
64192   template <>
64193   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT>
64194   {
64195     using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
64196   };
64197 
64198   struct PhysicalDeviceFragmentDensityMapFeaturesEXT
64199   {
64200     static const bool allowDuplicate = false;
64201     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
64202 
64203 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64204     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {}) VULKAN_HPP_NOEXCEPT
64205     : fragmentDensityMap( fragmentDensityMap_ ), fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ), fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
64206     {}
64207 
64208     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64209 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64210     PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64211     {
64212       *this = rhs;
64213     }
64214 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64215 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64216     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64217     {
64218       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs );
64219       return *this;
64220     }
64221 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64222     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64223     {
64224       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) );
64225       return *this;
64226     }
64227 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64228     PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64229     {
64230       pNext = pNext_;
64231       return *this;
64232     }
64233 
setFragmentDensityMapVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64234     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
64235     {
64236       fragmentDensityMap = fragmentDensityMap_;
64237       return *this;
64238     }
64239 
setFragmentDensityMapDynamicVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64240     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
64241     {
64242       fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
64243       return *this;
64244     }
64245 
setFragmentDensityMapNonSubsampledImagesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64246     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
64247     {
64248       fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
64249       return *this;
64250     }
64251 
64252 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64253     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64254     {
64255       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
64256     }
64257 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64258     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64259     {
64260       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
64261     }
64262 
64263 
64264 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64265     auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const& ) const = default;
64266 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64267     bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64268     {
64269       return ( sType == rhs.sType )
64270           && ( pNext == rhs.pNext )
64271           && ( fragmentDensityMap == rhs.fragmentDensityMap )
64272           && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
64273           && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
64274     }
64275 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64276     bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64277     {
64278       return !operator==( rhs );
64279     }
64280 #endif
64281 
64282 
64283 
64284   public:
64285     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
64286     void* pNext = {};
64287     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
64288     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
64289     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
64290 
64291   };
64292   static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" );
64293   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64294 
64295   template <>
64296   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
64297   {
64298     using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
64299   };
64300 
64301   struct PhysicalDeviceFragmentDensityMapPropertiesEXT
64302   {
64303     static const bool allowDuplicate = false;
64304     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
64305 
64306 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64307     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {}) VULKAN_HPP_NOEXCEPT
64308     : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ), maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ), fragmentDensityInvocations( fragmentDensityInvocations_ )
64309     {}
64310 
64311     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64312 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64313     PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64314     {
64315       *this = rhs;
64316     }
64317 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64318 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64319     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64320     {
64321       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs );
64322       return *this;
64323     }
64324 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64325     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64326     {
64327       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) );
64328       return *this;
64329     }
64330 
64331 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64332     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64333     {
64334       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
64335     }
64336 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64337     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
64338     {
64339       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
64340     }
64341 
64342 
64343 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64344     auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const& ) const = default;
64345 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64346     bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64347     {
64348       return ( sType == rhs.sType )
64349           && ( pNext == rhs.pNext )
64350           && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
64351           && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
64352           && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
64353     }
64354 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64355     bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64356     {
64357       return !operator==( rhs );
64358     }
64359 #endif
64360 
64361 
64362 
64363   public:
64364     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
64365     void* pNext = {};
64366     VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
64367     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
64368     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
64369 
64370   };
64371   static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" );
64372   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64373 
64374   template <>
64375   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
64376   {
64377     using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
64378   };
64379 
64380   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
64381   {
64382     static const bool allowDuplicate = false;
64383     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
64384 
64385 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64386     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {}) VULKAN_HPP_NOEXCEPT
64387     : fragmentShaderBarycentric( fragmentShaderBarycentric_ )
64388     {}
64389 
64390     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64391 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64392     PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64393     {
64394       *this = rhs;
64395     }
64396 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64397 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64398     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64399     {
64400       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV const *>( &rhs );
64401       return *this;
64402     }
64403 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64404     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64405     {
64406       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) );
64407       return *this;
64408     }
64409 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64410     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64411     {
64412       pNext = pNext_;
64413       return *this;
64414     }
64415 
setFragmentShaderBarycentricVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64416     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
64417     {
64418       fragmentShaderBarycentric = fragmentShaderBarycentric_;
64419       return *this;
64420     }
64421 
64422 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64423     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
64424     {
64425       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
64426     }
64427 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64428     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT
64429     {
64430       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
64431     }
64432 
64433 
64434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64435     auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& ) const = default;
64436 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64437     bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64438     {
64439       return ( sType == rhs.sType )
64440           && ( pNext == rhs.pNext )
64441           && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
64442     }
64443 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64444     bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64445     {
64446       return !operator==( rhs );
64447     }
64448 #endif
64449 
64450 
64451 
64452   public:
64453     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
64454     void* pNext = {};
64455     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
64456 
64457   };
64458   static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" );
64459   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderBarycentricFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64460 
64461   template <>
64462   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV>
64463   {
64464     using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
64465   };
64466 
64467   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
64468   {
64469     static const bool allowDuplicate = false;
64470     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
64471 
64472 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64473     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {}) VULKAN_HPP_NOEXCEPT
64474     : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ), fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ), fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
64475     {}
64476 
64477     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64478 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64479     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64480     {
64481       *this = rhs;
64482     }
64483 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64484 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64485     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64486     {
64487       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs );
64488       return *this;
64489     }
64490 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64491     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64492     {
64493       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) );
64494       return *this;
64495     }
64496 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64497     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64498     {
64499       pNext = pNext_;
64500       return *this;
64501     }
64502 
setFragmentShaderSampleInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64503     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
64504     {
64505       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
64506       return *this;
64507     }
64508 
setFragmentShaderPixelInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64509     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
64510     {
64511       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
64512       return *this;
64513     }
64514 
setFragmentShaderShadingRateInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64515     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
64516     {
64517       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
64518       return *this;
64519     }
64520 
64521 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64522     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64523     {
64524       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
64525     }
64526 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64527     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64528     {
64529       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
64530     }
64531 
64532 
64533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64534     auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& ) const = default;
64535 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64536     bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64537     {
64538       return ( sType == rhs.sType )
64539           && ( pNext == rhs.pNext )
64540           && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
64541           && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
64542           && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
64543     }
64544 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT64545     bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64546     {
64547       return !operator==( rhs );
64548     }
64549 #endif
64550 
64551 
64552 
64553   public:
64554     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
64555     void* pNext = {};
64556     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
64557     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
64558     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
64559 
64560   };
64561   static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" );
64562   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderInterlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64563 
64564   template <>
64565   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
64566   {
64567     using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
64568   };
64569 
64570   struct PhysicalDeviceGroupProperties
64571   {
64572     static const bool allowDuplicate = false;
64573     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
64574 
64575 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64576     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
64577     : physicalDeviceCount( physicalDeviceCount_ ), physicalDevices( physicalDevices_ ), subsetAllocation( subsetAllocation_ )
64578     {}
64579 
64580     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64581 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64582     PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64583     {
64584       *this = rhs;
64585     }
64586 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64587 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64588     PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64589     {
64590       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>( &rhs );
64591       return *this;
64592     }
64593 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64594     PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64595     {
64596       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceGroupProperties ) );
64597       return *this;
64598     }
64599 
64600 
operator VkPhysicalDeviceGroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64601     operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT
64602     {
64603       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
64604     }
64605 
operator VkPhysicalDeviceGroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64606     operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
64607     {
64608       return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
64609     }
64610 
64611 
64612 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64613     auto operator<=>( PhysicalDeviceGroupProperties const& ) const = default;
64614 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64615     bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64616     {
64617       return ( sType == rhs.sType )
64618           && ( pNext == rhs.pNext )
64619           && ( physicalDeviceCount == rhs.physicalDeviceCount )
64620           && ( physicalDevices == rhs.physicalDevices )
64621           && ( subsetAllocation == rhs.subsetAllocation );
64622     }
64623 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties64624     bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64625     {
64626       return !operator==( rhs );
64627     }
64628 #endif
64629 
64630 
64631 
64632   public:
64633     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
64634     void* pNext = {};
64635     uint32_t physicalDeviceCount = {};
64636     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
64637     VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
64638 
64639   };
64640   static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" );
64641   static_assert( std::is_standard_layout<PhysicalDeviceGroupProperties>::value, "struct wrapper is not a standard layout!" );
64642 
64643   template <>
64644   struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
64645   {
64646     using Type = PhysicalDeviceGroupProperties;
64647   };
64648   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
64649 
64650   struct PhysicalDeviceHostQueryResetFeatures
64651   {
64652     static const bool allowDuplicate = false;
64653     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
64654 
64655 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64656     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures(VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}) VULKAN_HPP_NOEXCEPT
64657     : hostQueryReset( hostQueryReset_ )
64658     {}
64659 
64660     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64661 
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64662     PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64663     {
64664       *this = rhs;
64665     }
64666 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64667 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64668     PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64669     {
64670       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>( &rhs );
64671       return *this;
64672     }
64673 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64674     PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64675     {
64676       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceHostQueryResetFeatures ) );
64677       return *this;
64678     }
64679 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64680     PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64681     {
64682       pNext = pNext_;
64683       return *this;
64684     }
64685 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64686     PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
64687     {
64688       hostQueryReset = hostQueryReset_;
64689       return *this;
64690     }
64691 
64692 
operator VkPhysicalDeviceHostQueryResetFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64693     operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT
64694     {
64695       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>( this );
64696     }
64697 
operator VkPhysicalDeviceHostQueryResetFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64698     operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
64699     {
64700       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>( this );
64701     }
64702 
64703 
64704 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64705     auto operator<=>( PhysicalDeviceHostQueryResetFeatures const& ) const = default;
64706 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64707     bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
64708     {
64709       return ( sType == rhs.sType )
64710           && ( pNext == rhs.pNext )
64711           && ( hostQueryReset == rhs.hostQueryReset );
64712     }
64713 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures64714     bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
64715     {
64716       return !operator==( rhs );
64717     }
64718 #endif
64719 
64720 
64721 
64722   public:
64723     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
64724     void* pNext = {};
64725     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
64726 
64727   };
64728   static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" );
64729   static_assert( std::is_standard_layout<PhysicalDeviceHostQueryResetFeatures>::value, "struct wrapper is not a standard layout!" );
64730 
64731   template <>
64732   struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
64733   {
64734     using Type = PhysicalDeviceHostQueryResetFeatures;
64735   };
64736   using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
64737 
64738   struct PhysicalDeviceIDProperties
64739   {
64740     static const bool allowDuplicate = false;
64741     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
64742 
64743 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64744     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
64745     : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ )
64746     {}
64747 
64748     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64749 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64750     PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64751     {
64752       *this = rhs;
64753     }
64754 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64755 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64756     PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64757     {
64758       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>( &rhs );
64759       return *this;
64760     }
64761 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64762     PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64763     {
64764       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceIDProperties ) );
64765       return *this;
64766     }
64767 
64768 
operator VkPhysicalDeviceIDProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64769     operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT
64770     {
64771       return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
64772     }
64773 
operator VkPhysicalDeviceIDProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64774     operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
64775     {
64776       return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
64777     }
64778 
64779 
64780 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64781     auto operator<=>( PhysicalDeviceIDProperties const& ) const = default;
64782 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64783     bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64784     {
64785       return ( sType == rhs.sType )
64786           && ( pNext == rhs.pNext )
64787           && ( deviceUUID == rhs.deviceUUID )
64788           && ( driverUUID == rhs.driverUUID )
64789           && ( deviceLUID == rhs.deviceLUID )
64790           && ( deviceNodeMask == rhs.deviceNodeMask )
64791           && ( deviceLUIDValid == rhs.deviceLUIDValid );
64792     }
64793 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties64794     bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64795     {
64796       return !operator==( rhs );
64797     }
64798 #endif
64799 
64800 
64801 
64802   public:
64803     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
64804     void* pNext = {};
64805     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
64806     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
64807     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
64808     uint32_t deviceNodeMask = {};
64809     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
64810 
64811   };
64812   static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" );
64813   static_assert( std::is_standard_layout<PhysicalDeviceIDProperties>::value, "struct wrapper is not a standard layout!" );
64814 
64815   template <>
64816   struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
64817   {
64818     using Type = PhysicalDeviceIDProperties;
64819   };
64820   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
64821 
64822   struct PhysicalDeviceImageDrmFormatModifierInfoEXT
64823   {
64824     static const bool allowDuplicate = false;
64825     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
64826 
64827 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64828     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
64829     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
64830     {}
64831 
64832     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64833 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64834     PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64835     {
64836       *this = rhs;
64837     }
64838 
64839 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64840     PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ )
64841     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
64842     {}
64843 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
64844 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64845 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64846     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64847     {
64848       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs );
64849       return *this;
64850     }
64851 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64852     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64853     {
64854       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) );
64855       return *this;
64856     }
64857 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64858     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64859     {
64860       pNext = pNext_;
64861       return *this;
64862     }
64863 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64864     PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
64865     {
64866       drmFormatModifier = drmFormatModifier_;
64867       return *this;
64868     }
64869 
setSharingModeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64870     PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
64871     {
64872       sharingMode = sharingMode_;
64873       return *this;
64874     }
64875 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64876     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
64877     {
64878       queueFamilyIndexCount = queueFamilyIndexCount_;
64879       return *this;
64880     }
64881 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64882     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
64883     {
64884       pQueueFamilyIndices = pQueueFamilyIndices_;
64885       return *this;
64886     }
64887 
64888 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64889     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
64890     {
64891       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
64892       pQueueFamilyIndices = queueFamilyIndices_.data();
64893       return *this;
64894     }
64895 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
64896 
64897 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64898     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT
64899     {
64900       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
64901     }
64902 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64903     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
64904     {
64905       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
64906     }
64907 
64908 
64909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64910     auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const& ) const = default;
64911 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64912     bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64913     {
64914       return ( sType == rhs.sType )
64915           && ( pNext == rhs.pNext )
64916           && ( drmFormatModifier == rhs.drmFormatModifier )
64917           && ( sharingMode == rhs.sharingMode )
64918           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
64919           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
64920     }
64921 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT64922     bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64923     {
64924       return !operator==( rhs );
64925     }
64926 #endif
64927 
64928 
64929 
64930   public:
64931     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
64932     const void* pNext = {};
64933     uint64_t drmFormatModifier = {};
64934     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
64935     uint32_t queueFamilyIndexCount = {};
64936     const uint32_t* pQueueFamilyIndices = {};
64937 
64938   };
64939   static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" );
64940   static_assert( std::is_standard_layout<PhysicalDeviceImageDrmFormatModifierInfoEXT>::value, "struct wrapper is not a standard layout!" );
64941 
64942   template <>
64943   struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
64944   {
64945     using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
64946   };
64947 
64948   struct PhysicalDeviceImageRobustnessFeaturesEXT
64949   {
64950     static const bool allowDuplicate = false;
64951     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
64952 
64953 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64954     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}) VULKAN_HPP_NOEXCEPT
64955     : robustImageAccess( robustImageAccess_ )
64956     {}
64957 
64958     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64959 
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64960     PhysicalDeviceImageRobustnessFeaturesEXT( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64961     {
64962       *this = rhs;
64963     }
64964 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64965 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64966     PhysicalDeviceImageRobustnessFeaturesEXT & operator=( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64967     {
64968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT const *>( &rhs );
64969       return *this;
64970     }
64971 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64972     PhysicalDeviceImageRobustnessFeaturesEXT & operator=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64973     {
64974       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) );
64975       return *this;
64976     }
64977 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64978     PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64979     {
64980       pNext = pNext_;
64981       return *this;
64982     }
64983 
setRobustImageAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64984     PhysicalDeviceImageRobustnessFeaturesEXT & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
64985     {
64986       robustImageAccess = robustImageAccess_;
64987       return *this;
64988     }
64989 
64990 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64991     operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64992     {
64993       return *reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
64994     }
64995 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT64996     operator VkPhysicalDeviceImageRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64997     {
64998       return *reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
64999     }
65000 
65001 
65002 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65003     auto operator<=>( PhysicalDeviceImageRobustnessFeaturesEXT const& ) const = default;
65004 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65005     bool operator==( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65006     {
65007       return ( sType == rhs.sType )
65008           && ( pNext == rhs.pNext )
65009           && ( robustImageAccess == rhs.robustImageAccess );
65010     }
65011 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65012     bool operator!=( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65013     {
65014       return !operator==( rhs );
65015     }
65016 #endif
65017 
65018 
65019 
65020   public:
65021     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
65022     void* pNext = {};
65023     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
65024 
65025   };
65026   static_assert( sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) == sizeof( VkPhysicalDeviceImageRobustnessFeaturesEXT ), "struct and wrapper have different size!" );
65027   static_assert( std::is_standard_layout<PhysicalDeviceImageRobustnessFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65028 
65029   template <>
65030   struct CppType<StructureType, StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT>
65031   {
65032     using Type = PhysicalDeviceImageRobustnessFeaturesEXT;
65033   };
65034 
65035   struct PhysicalDeviceImageViewImageFormatInfoEXT
65036   {
65037     static const bool allowDuplicate = false;
65038     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
65039 
65040 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65041     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT(VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D) VULKAN_HPP_NOEXCEPT
65042     : imageViewType( imageViewType_ )
65043     {}
65044 
65045     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65046 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65047     PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65048     {
65049       *this = rhs;
65050     }
65051 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65052 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65053     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65054     {
65055       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs );
65056       return *this;
65057     }
65058 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65059     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65060     {
65061       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) );
65062       return *this;
65063     }
65064 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65065     PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65066     {
65067       pNext = pNext_;
65068       return *this;
65069     }
65070 
setImageViewTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65071     PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
65072     {
65073       imageViewType = imageViewType_;
65074       return *this;
65075     }
65076 
65077 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65078     operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT
65079     {
65080       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
65081     }
65082 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65083     operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
65084     {
65085       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
65086     }
65087 
65088 
65089 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65090     auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const& ) const = default;
65091 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65092     bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65093     {
65094       return ( sType == rhs.sType )
65095           && ( pNext == rhs.pNext )
65096           && ( imageViewType == rhs.imageViewType );
65097     }
65098 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT65099     bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65100     {
65101       return !operator==( rhs );
65102     }
65103 #endif
65104 
65105 
65106 
65107   public:
65108     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
65109     void* pNext = {};
65110     VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
65111 
65112   };
65113   static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" );
65114   static_assert( std::is_standard_layout<PhysicalDeviceImageViewImageFormatInfoEXT>::value, "struct wrapper is not a standard layout!" );
65115 
65116   template <>
65117   struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
65118   {
65119     using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
65120   };
65121 
65122   struct PhysicalDeviceImagelessFramebufferFeatures
65123   {
65124     static const bool allowDuplicate = false;
65125     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
65126 
65127 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65128     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures(VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}) VULKAN_HPP_NOEXCEPT
65129     : imagelessFramebuffer( imagelessFramebuffer_ )
65130     {}
65131 
65132     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65133 
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65134     PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65135     {
65136       *this = rhs;
65137     }
65138 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65139 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65140     PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65141     {
65142       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs );
65143       return *this;
65144     }
65145 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65146     PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65147     {
65148       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImagelessFramebufferFeatures ) );
65149       return *this;
65150     }
65151 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65152     PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65153     {
65154       pNext = pNext_;
65155       return *this;
65156     }
65157 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65158     PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
65159     {
65160       imagelessFramebuffer = imagelessFramebuffer_;
65161       return *this;
65162     }
65163 
65164 
operator VkPhysicalDeviceImagelessFramebufferFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65165     operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT
65166     {
65167       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
65168     }
65169 
operator VkPhysicalDeviceImagelessFramebufferFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65170     operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
65171     {
65172       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
65173     }
65174 
65175 
65176 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65177     auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const& ) const = default;
65178 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65179     bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65180     {
65181       return ( sType == rhs.sType )
65182           && ( pNext == rhs.pNext )
65183           && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
65184     }
65185 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures65186     bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65187     {
65188       return !operator==( rhs );
65189     }
65190 #endif
65191 
65192 
65193 
65194   public:
65195     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
65196     void* pNext = {};
65197     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
65198 
65199   };
65200   static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" );
65201   static_assert( std::is_standard_layout<PhysicalDeviceImagelessFramebufferFeatures>::value, "struct wrapper is not a standard layout!" );
65202 
65203   template <>
65204   struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
65205   {
65206     using Type = PhysicalDeviceImagelessFramebufferFeatures;
65207   };
65208   using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
65209 
65210   struct PhysicalDeviceIndexTypeUint8FeaturesEXT
65211   {
65212     static const bool allowDuplicate = false;
65213     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
65214 
65215 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65216     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {}) VULKAN_HPP_NOEXCEPT
65217     : indexTypeUint8( indexTypeUint8_ )
65218     {}
65219 
65220     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65221 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65222     PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65223     {
65224       *this = rhs;
65225     }
65226 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65227 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65228     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65229     {
65230       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs );
65231       return *this;
65232     }
65233 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65234     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65235     {
65236       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) );
65237       return *this;
65238     }
65239 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65240     PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65241     {
65242       pNext = pNext_;
65243       return *this;
65244     }
65245 
setIndexTypeUint8VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65246     PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
65247     {
65248       indexTypeUint8 = indexTypeUint8_;
65249       return *this;
65250     }
65251 
65252 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65253     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65254     {
65255       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
65256     }
65257 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65258     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
65259     {
65260       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
65261     }
65262 
65263 
65264 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65265     auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const& ) const = default;
65266 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65267     bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65268     {
65269       return ( sType == rhs.sType )
65270           && ( pNext == rhs.pNext )
65271           && ( indexTypeUint8 == rhs.indexTypeUint8 );
65272     }
65273 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT65274     bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65275     {
65276       return !operator==( rhs );
65277     }
65278 #endif
65279 
65280 
65281 
65282   public:
65283     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
65284     void* pNext = {};
65285     VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
65286 
65287   };
65288   static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" );
65289   static_assert( std::is_standard_layout<PhysicalDeviceIndexTypeUint8FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65290 
65291   template <>
65292   struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
65293   {
65294     using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
65295   };
65296 
65297   struct PhysicalDeviceInlineUniformBlockFeaturesEXT
65298   {
65299     static const bool allowDuplicate = false;
65300     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
65301 
65302 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65303     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT
65304     : inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
65305     {}
65306 
65307     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65308 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65309     PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65310     {
65311       *this = rhs;
65312     }
65313 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65314 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65315     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65316     {
65317       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT const *>( &rhs );
65318       return *this;
65319     }
65320 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65321     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65322     {
65323       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) );
65324       return *this;
65325     }
65326 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65327     PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65328     {
65329       pNext = pNext_;
65330       return *this;
65331     }
65332 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65333     PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
65334     {
65335       inlineUniformBlock = inlineUniformBlock_;
65336       return *this;
65337     }
65338 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65339     PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
65340     {
65341       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
65342       return *this;
65343     }
65344 
65345 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65346     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65347     {
65348       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
65349     }
65350 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65351     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65352     {
65353       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
65354     }
65355 
65356 
65357 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65358     auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const& ) const = default;
65359 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65360     bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65361     {
65362       return ( sType == rhs.sType )
65363           && ( pNext == rhs.pNext )
65364           && ( inlineUniformBlock == rhs.inlineUniformBlock )
65365           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
65366     }
65367 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT65368     bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65369     {
65370       return !operator==( rhs );
65371     }
65372 #endif
65373 
65374 
65375 
65376   public:
65377     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
65378     void* pNext = {};
65379     VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
65380     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
65381 
65382   };
65383   static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" );
65384   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65385 
65386   template <>
65387   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT>
65388   {
65389     using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT;
65390   };
65391 
65392   struct PhysicalDeviceInlineUniformBlockPropertiesEXT
65393   {
65394     static const bool allowDuplicate = false;
65395     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
65396 
65397 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65398     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT(uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}) VULKAN_HPP_NOEXCEPT
65399     : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
65400     {}
65401 
65402     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65403 
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65404     PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65405     {
65406       *this = rhs;
65407     }
65408 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65409 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65410     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65411     {
65412       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT const *>( &rhs );
65413       return *this;
65414     }
65415 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65416     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65417     {
65418       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) );
65419       return *this;
65420     }
65421 
65422 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65423     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
65424     {
65425       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
65426     }
65427 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65428     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT
65429     {
65430       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
65431     }
65432 
65433 
65434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65435     auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const& ) const = default;
65436 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65437     bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65438     {
65439       return ( sType == rhs.sType )
65440           && ( pNext == rhs.pNext )
65441           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
65442           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
65443           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
65444           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
65445           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
65446     }
65447 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT65448     bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65449     {
65450       return !operator==( rhs );
65451     }
65452 #endif
65453 
65454 
65455 
65456   public:
65457     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
65458     void* pNext = {};
65459     uint32_t maxInlineUniformBlockSize = {};
65460     uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
65461     uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
65462     uint32_t maxDescriptorSetInlineUniformBlocks = {};
65463     uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
65464 
65465   };
65466   static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" );
65467   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
65468 
65469   template <>
65470   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT>
65471   {
65472     using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT;
65473   };
65474 
65475   struct PhysicalDeviceLineRasterizationFeaturesEXT
65476   {
65477     static const bool allowDuplicate = false;
65478     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
65479 
65480 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65481     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
65482     : rectangularLines( rectangularLines_ ), bresenhamLines( bresenhamLines_ ), smoothLines( smoothLines_ ), stippledRectangularLines( stippledRectangularLines_ ), stippledBresenhamLines( stippledBresenhamLines_ ), stippledSmoothLines( stippledSmoothLines_ )
65483     {}
65484 
65485     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65486 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65487     PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65488     {
65489       *this = rhs;
65490     }
65491 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65492 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65493     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65494     {
65495       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs );
65496       return *this;
65497     }
65498 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65499     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65500     {
65501       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) );
65502       return *this;
65503     }
65504 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65505     PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65506     {
65507       pNext = pNext_;
65508       return *this;
65509     }
65510 
setRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65511     PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
65512     {
65513       rectangularLines = rectangularLines_;
65514       return *this;
65515     }
65516 
setBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65517     PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
65518     {
65519       bresenhamLines = bresenhamLines_;
65520       return *this;
65521     }
65522 
setSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65523     PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
65524     {
65525       smoothLines = smoothLines_;
65526       return *this;
65527     }
65528 
setStippledRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65529     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
65530     {
65531       stippledRectangularLines = stippledRectangularLines_;
65532       return *this;
65533     }
65534 
setStippledBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65535     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
65536     {
65537       stippledBresenhamLines = stippledBresenhamLines_;
65538       return *this;
65539     }
65540 
setStippledSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65541     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
65542     {
65543       stippledSmoothLines = stippledSmoothLines_;
65544       return *this;
65545     }
65546 
65547 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65548     operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65549     {
65550       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
65551     }
65552 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65553     operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65554     {
65555       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
65556     }
65557 
65558 
65559 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65560     auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const& ) const = default;
65561 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65562     bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65563     {
65564       return ( sType == rhs.sType )
65565           && ( pNext == rhs.pNext )
65566           && ( rectangularLines == rhs.rectangularLines )
65567           && ( bresenhamLines == rhs.bresenhamLines )
65568           && ( smoothLines == rhs.smoothLines )
65569           && ( stippledRectangularLines == rhs.stippledRectangularLines )
65570           && ( stippledBresenhamLines == rhs.stippledBresenhamLines )
65571           && ( stippledSmoothLines == rhs.stippledSmoothLines );
65572     }
65573 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65574     bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65575     {
65576       return !operator==( rhs );
65577     }
65578 #endif
65579 
65580 
65581 
65582   public:
65583     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
65584     void* pNext = {};
65585     VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
65586     VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
65587     VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
65588     VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
65589     VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
65590     VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
65591 
65592   };
65593   static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" );
65594   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65595 
65596   template <>
65597   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
65598   {
65599     using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
65600   };
65601 
65602   struct PhysicalDeviceLineRasterizationPropertiesEXT
65603   {
65604     static const bool allowDuplicate = false;
65605     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
65606 
65607 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65608     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT(uint32_t lineSubPixelPrecisionBits_ = {}) VULKAN_HPP_NOEXCEPT
65609     : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
65610     {}
65611 
65612     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65613 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65614     PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65615     {
65616       *this = rhs;
65617     }
65618 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65619 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65620     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65621     {
65622       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs );
65623       return *this;
65624     }
65625 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65626     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65627     {
65628       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) );
65629       return *this;
65630     }
65631 
65632 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65633     operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
65634     {
65635       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
65636     }
65637 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65638     operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
65639     {
65640       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
65641     }
65642 
65643 
65644 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65645     auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const& ) const = default;
65646 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65647     bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65648     {
65649       return ( sType == rhs.sType )
65650           && ( pNext == rhs.pNext )
65651           && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
65652     }
65653 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65654     bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65655     {
65656       return !operator==( rhs );
65657     }
65658 #endif
65659 
65660 
65661 
65662   public:
65663     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
65664     void* pNext = {};
65665     uint32_t lineSubPixelPrecisionBits = {};
65666 
65667   };
65668   static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
65669   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
65670 
65671   template <>
65672   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
65673   {
65674     using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
65675   };
65676 
65677   struct PhysicalDeviceMaintenance3Properties
65678   {
65679     static const bool allowDuplicate = false;
65680     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
65681 
65682 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65683     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties(uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT
65684     : maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ )
65685     {}
65686 
65687     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65688 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65689     PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
65690     {
65691       *this = rhs;
65692     }
65693 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65694 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65695     PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
65696     {
65697       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>( &rhs );
65698       return *this;
65699     }
65700 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65701     PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
65702     {
65703       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMaintenance3Properties ) );
65704       return *this;
65705     }
65706 
65707 
operator VkPhysicalDeviceMaintenance3Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65708     operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT
65709     {
65710       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
65711     }
65712 
operator VkPhysicalDeviceMaintenance3Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65713     operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
65714     {
65715       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
65716     }
65717 
65718 
65719 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65720     auto operator<=>( PhysicalDeviceMaintenance3Properties const& ) const = default;
65721 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65722     bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
65723     {
65724       return ( sType == rhs.sType )
65725           && ( pNext == rhs.pNext )
65726           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
65727           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
65728     }
65729 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65730     bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
65731     {
65732       return !operator==( rhs );
65733     }
65734 #endif
65735 
65736 
65737 
65738   public:
65739     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
65740     void* pNext = {};
65741     uint32_t maxPerSetDescriptors = {};
65742     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
65743 
65744   };
65745   static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" );
65746   static_assert( std::is_standard_layout<PhysicalDeviceMaintenance3Properties>::value, "struct wrapper is not a standard layout!" );
65747 
65748   template <>
65749   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
65750   {
65751     using Type = PhysicalDeviceMaintenance3Properties;
65752   };
65753   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
65754 
65755   struct PhysicalDeviceMemoryBudgetPropertiesEXT
65756   {
65757     static const bool allowDuplicate = false;
65758     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
65759 
65760 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65761     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
65762     : heapBudget( heapBudget_ ), heapUsage( heapUsage_ )
65763     {}
65764 
65765     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65766 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65767     PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65768     {
65769       *this = rhs;
65770     }
65771 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65772 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65773     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65774     {
65775       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs );
65776       return *this;
65777     }
65778 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65779     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65780     {
65781       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) );
65782       return *this;
65783     }
65784 
65785 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65786     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
65787     {
65788       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
65789     }
65790 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65791     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
65792     {
65793       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
65794     }
65795 
65796 
65797 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65798     auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const& ) const = default;
65799 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65800     bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65801     {
65802       return ( sType == rhs.sType )
65803           && ( pNext == rhs.pNext )
65804           && ( heapBudget == rhs.heapBudget )
65805           && ( heapUsage == rhs.heapUsage );
65806     }
65807 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT65808     bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65809     {
65810       return !operator==( rhs );
65811     }
65812 #endif
65813 
65814 
65815 
65816   public:
65817     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
65818     void* pNext = {};
65819     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
65820     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
65821 
65822   };
65823   static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" );
65824   static_assert( std::is_standard_layout<PhysicalDeviceMemoryBudgetPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
65825 
65826   template <>
65827   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
65828   {
65829     using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
65830   };
65831 
65832   struct PhysicalDeviceMemoryPriorityFeaturesEXT
65833   {
65834     static const bool allowDuplicate = false;
65835     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
65836 
65837 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65838     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {}) VULKAN_HPP_NOEXCEPT
65839     : memoryPriority( memoryPriority_ )
65840     {}
65841 
65842     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65843 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65844     PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65845     {
65846       *this = rhs;
65847     }
65848 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65849 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65850     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65851     {
65852       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs );
65853       return *this;
65854     }
65855 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65856     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65857     {
65858       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) );
65859       return *this;
65860     }
65861 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65862     PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65863     {
65864       pNext = pNext_;
65865       return *this;
65866     }
65867 
setMemoryPriorityVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65868     PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
65869     {
65870       memoryPriority = memoryPriority_;
65871       return *this;
65872     }
65873 
65874 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65875     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65876     {
65877       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
65878     }
65879 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65880     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65881     {
65882       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
65883     }
65884 
65885 
65886 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65887     auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const& ) const = default;
65888 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65889     bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65890     {
65891       return ( sType == rhs.sType )
65892           && ( pNext == rhs.pNext )
65893           && ( memoryPriority == rhs.memoryPriority );
65894     }
65895 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT65896     bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65897     {
65898       return !operator==( rhs );
65899     }
65900 #endif
65901 
65902 
65903 
65904   public:
65905     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
65906     void* pNext = {};
65907     VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
65908 
65909   };
65910   static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" );
65911   static_assert( std::is_standard_layout<PhysicalDeviceMemoryPriorityFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65912 
65913   template <>
65914   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
65915   {
65916     using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
65917   };
65918 
65919   struct PhysicalDeviceMeshShaderFeaturesNV
65920   {
65921     static const bool allowDuplicate = false;
65922     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
65923 
65924 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65925     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}) VULKAN_HPP_NOEXCEPT
65926     : taskShader( taskShader_ ), meshShader( meshShader_ )
65927     {}
65928 
65929     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65930 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65931     PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65932     {
65933       *this = rhs;
65934     }
65935 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65936 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65937     PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65938     {
65939       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs );
65940       return *this;
65941     }
65942 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65943     PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65944     {
65945       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMeshShaderFeaturesNV ) );
65946       return *this;
65947     }
65948 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65949     PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65950     {
65951       pNext = pNext_;
65952       return *this;
65953     }
65954 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65955     PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
65956     {
65957       taskShader = taskShader_;
65958       return *this;
65959     }
65960 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65961     PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
65962     {
65963       meshShader = meshShader_;
65964       return *this;
65965     }
65966 
65967 
operator VkPhysicalDeviceMeshShaderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65968     operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
65969     {
65970       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
65971     }
65972 
operator VkPhysicalDeviceMeshShaderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65973     operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
65974     {
65975       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
65976     }
65977 
65978 
65979 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65980     auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const& ) const = default;
65981 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65982     bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65983     {
65984       return ( sType == rhs.sType )
65985           && ( pNext == rhs.pNext )
65986           && ( taskShader == rhs.taskShader )
65987           && ( meshShader == rhs.meshShader );
65988     }
65989 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV65990     bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65991     {
65992       return !operator==( rhs );
65993     }
65994 #endif
65995 
65996 
65997 
65998   public:
65999     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
66000     void* pNext = {};
66001     VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
66002     VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
66003 
66004   };
66005   static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" );
66006   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderFeaturesNV>::value, "struct wrapper is not a standard layout!" );
66007 
66008   template <>
66009   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
66010   {
66011     using Type = PhysicalDeviceMeshShaderFeaturesNV;
66012   };
66013 
66014   struct PhysicalDeviceMeshShaderPropertiesNV
66015   {
66016     static const bool allowDuplicate = false;
66017     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
66018 
66019 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66020     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
66021     : 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_ )
66022     {}
66023 
66024     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66025 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66026     PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66027     {
66028       *this = rhs;
66029     }
66030 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66031 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66032     PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66033     {
66034       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs );
66035       return *this;
66036     }
66037 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66038     PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66039     {
66040       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMeshShaderPropertiesNV ) );
66041       return *this;
66042     }
66043 
66044 
operator VkPhysicalDeviceMeshShaderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66045     operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
66046     {
66047       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
66048     }
66049 
operator VkPhysicalDeviceMeshShaderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66050     operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
66051     {
66052       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
66053     }
66054 
66055 
66056 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66057     auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const& ) const = default;
66058 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66059     bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66060     {
66061       return ( sType == rhs.sType )
66062           && ( pNext == rhs.pNext )
66063           && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
66064           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
66065           && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize )
66066           && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
66067           && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
66068           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
66069           && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize )
66070           && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
66071           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
66072           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
66073           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
66074           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
66075           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
66076     }
66077 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV66078     bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66079     {
66080       return !operator==( rhs );
66081     }
66082 #endif
66083 
66084 
66085 
66086   public:
66087     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
66088     void* pNext = {};
66089     uint32_t maxDrawMeshTasksCount = {};
66090     uint32_t maxTaskWorkGroupInvocations = {};
66091     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
66092     uint32_t maxTaskTotalMemorySize = {};
66093     uint32_t maxTaskOutputCount = {};
66094     uint32_t maxMeshWorkGroupInvocations = {};
66095     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
66096     uint32_t maxMeshTotalMemorySize = {};
66097     uint32_t maxMeshOutputVertices = {};
66098     uint32_t maxMeshOutputPrimitives = {};
66099     uint32_t maxMeshMultiviewViewCount = {};
66100     uint32_t meshOutputPerVertexGranularity = {};
66101     uint32_t meshOutputPerPrimitiveGranularity = {};
66102 
66103   };
66104   static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" );
66105   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderPropertiesNV>::value, "struct wrapper is not a standard layout!" );
66106 
66107   template <>
66108   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
66109   {
66110     using Type = PhysicalDeviceMeshShaderPropertiesNV;
66111   };
66112 
66113   struct PhysicalDeviceMultiviewFeatures
66114   {
66115     static const bool allowDuplicate = false;
66116     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
66117 
66118 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66119     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures(VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}) VULKAN_HPP_NOEXCEPT
66120     : multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ )
66121     {}
66122 
66123     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66124 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66125     PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66126     {
66127       *this = rhs;
66128     }
66129 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66130 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66131     PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66132     {
66133       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>( &rhs );
66134       return *this;
66135     }
66136 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66137     PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66138     {
66139       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewFeatures ) );
66140       return *this;
66141     }
66142 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66143     PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66144     {
66145       pNext = pNext_;
66146       return *this;
66147     }
66148 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66149     PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
66150     {
66151       multiview = multiview_;
66152       return *this;
66153     }
66154 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66155     PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
66156     {
66157       multiviewGeometryShader = multiviewGeometryShader_;
66158       return *this;
66159     }
66160 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66161     PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
66162     {
66163       multiviewTessellationShader = multiviewTessellationShader_;
66164       return *this;
66165     }
66166 
66167 
operator VkPhysicalDeviceMultiviewFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66168     operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT
66169     {
66170       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
66171     }
66172 
operator VkPhysicalDeviceMultiviewFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66173     operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
66174     {
66175       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
66176     }
66177 
66178 
66179 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66180     auto operator<=>( PhysicalDeviceMultiviewFeatures const& ) const = default;
66181 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66182     bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66183     {
66184       return ( sType == rhs.sType )
66185           && ( pNext == rhs.pNext )
66186           && ( multiview == rhs.multiview )
66187           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
66188           && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
66189     }
66190 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures66191     bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66192     {
66193       return !operator==( rhs );
66194     }
66195 #endif
66196 
66197 
66198 
66199   public:
66200     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
66201     void* pNext = {};
66202     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
66203     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
66204     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
66205 
66206   };
66207   static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" );
66208   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewFeatures>::value, "struct wrapper is not a standard layout!" );
66209 
66210   template <>
66211   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
66212   {
66213     using Type = PhysicalDeviceMultiviewFeatures;
66214   };
66215   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
66216 
66217   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
66218   {
66219     static const bool allowDuplicate = false;
66220     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
66221 
66222 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66223     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {}) VULKAN_HPP_NOEXCEPT
66224     : perViewPositionAllComponents( perViewPositionAllComponents_ )
66225     {}
66226 
66227     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66228 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66229     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
66230     {
66231       *this = rhs;
66232     }
66233 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66234 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66235     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
66236     {
66237       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs );
66238       return *this;
66239     }
66240 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66241     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
66242     {
66243       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) );
66244       return *this;
66245     }
66246 
66247 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66248     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
66249     {
66250       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
66251     }
66252 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66253     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
66254     {
66255       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
66256     }
66257 
66258 
66259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66260     auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& ) const = default;
66261 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66262     bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
66263     {
66264       return ( sType == rhs.sType )
66265           && ( pNext == rhs.pNext )
66266           && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
66267     }
66268 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX66269     bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
66270     {
66271       return !operator==( rhs );
66272     }
66273 #endif
66274 
66275 
66276 
66277   public:
66278     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
66279     void* pNext = {};
66280     VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
66281 
66282   };
66283   static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" );
66284   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
66285 
66286   template <>
66287   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
66288   {
66289     using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
66290   };
66291 
66292   struct PhysicalDeviceMultiviewProperties
66293   {
66294     static const bool allowDuplicate = false;
66295     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
66296 
66297 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66298     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties(uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}) VULKAN_HPP_NOEXCEPT
66299     : maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
66300     {}
66301 
66302     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66303 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66304     PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66305     {
66306       *this = rhs;
66307     }
66308 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66309 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66310     PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66311     {
66312       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>( &rhs );
66313       return *this;
66314     }
66315 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66316     PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66317     {
66318       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewProperties ) );
66319       return *this;
66320     }
66321 
66322 
operator VkPhysicalDeviceMultiviewProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66323     operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT
66324     {
66325       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
66326     }
66327 
operator VkPhysicalDeviceMultiviewProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66328     operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
66329     {
66330       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
66331     }
66332 
66333 
66334 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66335     auto operator<=>( PhysicalDeviceMultiviewProperties const& ) const = default;
66336 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66337     bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66338     {
66339       return ( sType == rhs.sType )
66340           && ( pNext == rhs.pNext )
66341           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
66342           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
66343     }
66344 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties66345     bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66346     {
66347       return !operator==( rhs );
66348     }
66349 #endif
66350 
66351 
66352 
66353   public:
66354     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
66355     void* pNext = {};
66356     uint32_t maxMultiviewViewCount = {};
66357     uint32_t maxMultiviewInstanceIndex = {};
66358 
66359   };
66360   static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" );
66361   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewProperties>::value, "struct wrapper is not a standard layout!" );
66362 
66363   template <>
66364   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
66365   {
66366     using Type = PhysicalDeviceMultiviewProperties;
66367   };
66368   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
66369 
66370   struct PhysicalDevicePCIBusInfoPropertiesEXT
66371   {
66372     static const bool allowDuplicate = false;
66373     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
66374 
66375 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66376     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}) VULKAN_HPP_NOEXCEPT
66377     : pciDomain( pciDomain_ ), pciBus( pciBus_ ), pciDevice( pciDevice_ ), pciFunction( pciFunction_ )
66378     {}
66379 
66380     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66381 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66382     PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66383     {
66384       *this = rhs;
66385     }
66386 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66387 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66388     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66389     {
66390       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs );
66391       return *this;
66392     }
66393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66394     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66395     {
66396       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) );
66397       return *this;
66398     }
66399 
66400 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66401     operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66402     {
66403       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
66404     }
66405 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66406     operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66407     {
66408       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
66409     }
66410 
66411 
66412 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66413     auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const& ) const = default;
66414 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66415     bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66416     {
66417       return ( sType == rhs.sType )
66418           && ( pNext == rhs.pNext )
66419           && ( pciDomain == rhs.pciDomain )
66420           && ( pciBus == rhs.pciBus )
66421           && ( pciDevice == rhs.pciDevice )
66422           && ( pciFunction == rhs.pciFunction );
66423     }
66424 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT66425     bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66426     {
66427       return !operator==( rhs );
66428     }
66429 #endif
66430 
66431 
66432 
66433   public:
66434     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
66435     void* pNext = {};
66436     uint32_t pciDomain = {};
66437     uint32_t pciBus = {};
66438     uint32_t pciDevice = {};
66439     uint32_t pciFunction = {};
66440 
66441   };
66442   static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" );
66443   static_assert( std::is_standard_layout<PhysicalDevicePCIBusInfoPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66444 
66445   template <>
66446   struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
66447   {
66448     using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
66449   };
66450 
66451   struct PhysicalDevicePerformanceQueryFeaturesKHR
66452   {
66453     static const bool allowDuplicate = false;
66454     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
66455 
66456 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66457     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {}) VULKAN_HPP_NOEXCEPT
66458     : performanceCounterQueryPools( performanceCounterQueryPools_ ), performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
66459     {}
66460 
66461     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66462 
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66463     PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66464     {
66465       *this = rhs;
66466     }
66467 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66468 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66469     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66470     {
66471       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs );
66472       return *this;
66473     }
66474 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66475     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66476     {
66477       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) );
66478       return *this;
66479     }
66480 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66481     PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66482     {
66483       pNext = pNext_;
66484       return *this;
66485     }
66486 
setPerformanceCounterQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66487     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
66488     {
66489       performanceCounterQueryPools = performanceCounterQueryPools_;
66490       return *this;
66491     }
66492 
setPerformanceCounterMultipleQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66493     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
66494     {
66495       performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
66496       return *this;
66497     }
66498 
66499 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66500     operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
66501     {
66502       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
66503     }
66504 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66505     operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
66506     {
66507       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
66508     }
66509 
66510 
66511 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66512     auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const& ) const = default;
66513 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66514     bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66515     {
66516       return ( sType == rhs.sType )
66517           && ( pNext == rhs.pNext )
66518           && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools )
66519           && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
66520     }
66521 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR66522     bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66523     {
66524       return !operator==( rhs );
66525     }
66526 #endif
66527 
66528 
66529 
66530   public:
66531     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
66532     void* pNext = {};
66533     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
66534     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
66535 
66536   };
66537   static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" );
66538   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
66539 
66540   template <>
66541   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
66542   {
66543     using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
66544   };
66545 
66546   struct PhysicalDevicePerformanceQueryPropertiesKHR
66547   {
66548     static const bool allowDuplicate = false;
66549     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
66550 
66551 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66552     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {}) VULKAN_HPP_NOEXCEPT
66553     : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
66554     {}
66555 
66556     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66557 
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66558     PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66559     {
66560       *this = rhs;
66561     }
66562 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66563 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66564     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66565     {
66566       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs );
66567       return *this;
66568     }
66569 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66570     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66571     {
66572       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) );
66573       return *this;
66574     }
66575 
66576 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66577     operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
66578     {
66579       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
66580     }
66581 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66582     operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
66583     {
66584       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
66585     }
66586 
66587 
66588 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66589     auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const& ) const = default;
66590 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66591     bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66592     {
66593       return ( sType == rhs.sType )
66594           && ( pNext == rhs.pNext )
66595           && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
66596     }
66597 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR66598     bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66599     {
66600       return !operator==( rhs );
66601     }
66602 #endif
66603 
66604 
66605 
66606   public:
66607     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
66608     void* pNext = {};
66609     VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
66610 
66611   };
66612   static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" );
66613   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
66614 
66615   template <>
66616   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
66617   {
66618     using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
66619   };
66620 
66621   struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT
66622   {
66623     static const bool allowDuplicate = false;
66624     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
66625 
66626 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66627     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}) VULKAN_HPP_NOEXCEPT
66628     : pipelineCreationCacheControl( pipelineCreationCacheControl_ )
66629     {}
66630 
66631     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66632 
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66633     PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66634     {
66635       *this = rhs;
66636     }
66637 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66638 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66639     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66640     {
66641       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT const *>( &rhs );
66642       return *this;
66643     }
66644 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66645     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66646     {
66647       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) );
66648       return *this;
66649     }
66650 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66651     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66652     {
66653       pNext = pNext_;
66654       return *this;
66655     }
66656 
setPipelineCreationCacheControlVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66657     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
66658     {
66659       pipelineCreationCacheControl = pipelineCreationCacheControl_;
66660       return *this;
66661     }
66662 
66663 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66664     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66665     {
66666       return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
66667     }
66668 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66669     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66670     {
66671       return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
66672     }
66673 
66674 
66675 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66676     auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& ) const = default;
66677 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66678     bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66679     {
66680       return ( sType == rhs.sType )
66681           && ( pNext == rhs.pNext )
66682           && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
66683     }
66684 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT66685     bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66686     {
66687       return !operator==( rhs );
66688     }
66689 #endif
66690 
66691 
66692 
66693   public:
66694     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
66695     void* pNext = {};
66696     VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
66697 
66698   };
66699   static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), "struct and wrapper have different size!" );
66700   static_assert( std::is_standard_layout<PhysicalDevicePipelineCreationCacheControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66701 
66702   template <>
66703   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT>
66704   {
66705     using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
66706   };
66707 
66708   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
66709   {
66710     static const bool allowDuplicate = false;
66711     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
66712 
66713 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66714     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {}) VULKAN_HPP_NOEXCEPT
66715     : pipelineExecutableInfo( pipelineExecutableInfo_ )
66716     {}
66717 
66718     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66719 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66720     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66721     {
66722       *this = rhs;
66723     }
66724 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66725 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66726     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66727     {
66728       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs );
66729       return *this;
66730     }
66731 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66732     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66733     {
66734       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) );
66735       return *this;
66736     }
66737 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66738     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66739     {
66740       pNext = pNext_;
66741       return *this;
66742     }
66743 
setPipelineExecutableInfoVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66744     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
66745     {
66746       pipelineExecutableInfo = pipelineExecutableInfo_;
66747       return *this;
66748     }
66749 
66750 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66751     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
66752     {
66753       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
66754     }
66755 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66756     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
66757     {
66758       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
66759     }
66760 
66761 
66762 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66763     auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& ) const = default;
66764 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66765     bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66766     {
66767       return ( sType == rhs.sType )
66768           && ( pNext == rhs.pNext )
66769           && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
66770     }
66771 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR66772     bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
66773     {
66774       return !operator==( rhs );
66775     }
66776 #endif
66777 
66778 
66779 
66780   public:
66781     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
66782     void* pNext = {};
66783     VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
66784 
66785   };
66786   static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" );
66787   static_assert( std::is_standard_layout<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
66788 
66789   template <>
66790   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
66791   {
66792     using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
66793   };
66794 
66795   struct PhysicalDevicePointClippingProperties
66796   {
66797     static const bool allowDuplicate = false;
66798     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
66799 
66800 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66801     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes) VULKAN_HPP_NOEXCEPT
66802     : pointClippingBehavior( pointClippingBehavior_ )
66803     {}
66804 
66805     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66806 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66807     PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66808     {
66809       *this = rhs;
66810     }
66811 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66812 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66813     PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66814     {
66815       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>( &rhs );
66816       return *this;
66817     }
66818 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66819     PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66820     {
66821       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePointClippingProperties ) );
66822       return *this;
66823     }
66824 
66825 
operator VkPhysicalDevicePointClippingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66826     operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT
66827     {
66828       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
66829     }
66830 
operator VkPhysicalDevicePointClippingProperties&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66831     operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
66832     {
66833       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
66834     }
66835 
66836 
66837 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66838     auto operator<=>( PhysicalDevicePointClippingProperties const& ) const = default;
66839 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66840     bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66841     {
66842       return ( sType == rhs.sType )
66843           && ( pNext == rhs.pNext )
66844           && ( pointClippingBehavior == rhs.pointClippingBehavior );
66845     }
66846 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties66847     bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
66848     {
66849       return !operator==( rhs );
66850     }
66851 #endif
66852 
66853 
66854 
66855   public:
66856     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
66857     void* pNext = {};
66858     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
66859 
66860   };
66861   static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" );
66862   static_assert( std::is_standard_layout<PhysicalDevicePointClippingProperties>::value, "struct wrapper is not a standard layout!" );
66863 
66864   template <>
66865   struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
66866   {
66867     using Type = PhysicalDevicePointClippingProperties;
66868   };
66869   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
66870 
66871 #ifdef VK_ENABLE_BETA_EXTENSIONS
66872   struct PhysicalDevicePortabilitySubsetFeaturesKHR
66873   {
66874     static const bool allowDuplicate = false;
66875     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
66876 
66877 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66878     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
66879     : 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_ )
66880     {}
66881 
66882     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66883 
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66884     PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66885     {
66886       *this = rhs;
66887     }
66888 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66889 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66890     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66891     {
66892       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs );
66893       return *this;
66894     }
66895 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66896     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66897     {
66898       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) );
66899       return *this;
66900     }
66901 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66902     PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66903     {
66904       pNext = pNext_;
66905       return *this;
66906     }
66907 
setConstantAlphaColorBlendFactorsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66908     PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
66909     {
66910       constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
66911       return *this;
66912     }
66913 
setEventsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66914     PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT
66915     {
66916       events = events_;
66917       return *this;
66918     }
66919 
setImageViewFormatReinterpretationVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66920     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
66921     {
66922       imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
66923       return *this;
66924     }
66925 
setImageViewFormatSwizzleVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66926     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
66927     {
66928       imageViewFormatSwizzle = imageViewFormatSwizzle_;
66929       return *this;
66930     }
66931 
setImageView2DOn3DImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66932     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
66933     {
66934       imageView2DOn3DImage = imageView2DOn3DImage_;
66935       return *this;
66936     }
66937 
setMultisampleArrayImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66938     PhysicalDevicePortabilitySubsetFeaturesKHR & setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
66939     {
66940       multisampleArrayImage = multisampleArrayImage_;
66941       return *this;
66942     }
66943 
setMutableComparisonSamplersVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66944     PhysicalDevicePortabilitySubsetFeaturesKHR & setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
66945     {
66946       mutableComparisonSamplers = mutableComparisonSamplers_;
66947       return *this;
66948     }
66949 
setPointPolygonsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66950     PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT
66951     {
66952       pointPolygons = pointPolygons_;
66953       return *this;
66954     }
66955 
setSamplerMipLodBiasVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66956     PhysicalDevicePortabilitySubsetFeaturesKHR & setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
66957     {
66958       samplerMipLodBias = samplerMipLodBias_;
66959       return *this;
66960     }
66961 
setSeparateStencilMaskRefVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66962     PhysicalDevicePortabilitySubsetFeaturesKHR & setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
66963     {
66964       separateStencilMaskRef = separateStencilMaskRef_;
66965       return *this;
66966     }
66967 
setShaderSampleRateInterpolationFunctionsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66968     PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT
66969     {
66970       shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_;
66971       return *this;
66972     }
66973 
setTessellationIsolinesVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66974     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
66975     {
66976       tessellationIsolines = tessellationIsolines_;
66977       return *this;
66978     }
66979 
setTessellationPointModeVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66980     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
66981     {
66982       tessellationPointMode = tessellationPointMode_;
66983       return *this;
66984     }
66985 
setTriangleFansVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66986     PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT
66987     {
66988       triangleFans = triangleFans_;
66989       return *this;
66990     }
66991 
setVertexAttributeAccessBeyondStrideVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66992     PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
66993     {
66994       vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
66995       return *this;
66996     }
66997 
66998 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR66999     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67000     {
67001       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
67002     }
67003 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67004     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67005     {
67006       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
67007     }
67008 
67009 
67010 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67011     auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const& ) const = default;
67012 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67013     bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67014     {
67015       return ( sType == rhs.sType )
67016           && ( pNext == rhs.pNext )
67017           && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors )
67018           && ( events == rhs.events )
67019           && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation )
67020           && ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle )
67021           && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage )
67022           && ( multisampleArrayImage == rhs.multisampleArrayImage )
67023           && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers )
67024           && ( pointPolygons == rhs.pointPolygons )
67025           && ( samplerMipLodBias == rhs.samplerMipLodBias )
67026           && ( separateStencilMaskRef == rhs.separateStencilMaskRef )
67027           && ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions )
67028           && ( tessellationIsolines == rhs.tessellationIsolines )
67029           && ( tessellationPointMode == rhs.tessellationPointMode )
67030           && ( triangleFans == rhs.triangleFans )
67031           && ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride );
67032     }
67033 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67034     bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67035     {
67036       return !operator==( rhs );
67037     }
67038 #endif
67039 
67040 
67041 
67042   public:
67043     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
67044     void* pNext = {};
67045     VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {};
67046     VULKAN_HPP_NAMESPACE::Bool32 events = {};
67047     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {};
67048     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {};
67049     VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {};
67050     VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {};
67051     VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {};
67052     VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {};
67053     VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {};
67054     VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {};
67055     VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {};
67056     VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {};
67057     VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {};
67058     VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {};
67059     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {};
67060 
67061   };
67062   static_assert( sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetFeaturesKHR ), "struct and wrapper have different size!" );
67063   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67064 
67065   template <>
67066   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR>
67067   {
67068     using Type = PhysicalDevicePortabilitySubsetFeaturesKHR;
67069   };
67070 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
67071 
67072 #ifdef VK_ENABLE_BETA_EXTENSIONS
67073   struct PhysicalDevicePortabilitySubsetPropertiesKHR
67074   {
67075     static const bool allowDuplicate = false;
67076     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
67077 
67078 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67079     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR(uint32_t minVertexInputBindingStrideAlignment_ = {}) VULKAN_HPP_NOEXCEPT
67080     : minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
67081     {}
67082 
67083     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67084 
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67085     PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67086     {
67087       *this = rhs;
67088     }
67089 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67090 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67091     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67092     {
67093       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs );
67094       return *this;
67095     }
67096 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67097     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67098     {
67099       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) );
67100       return *this;
67101     }
67102 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67103     PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67104     {
67105       pNext = pNext_;
67106       return *this;
67107     }
67108 
setMinVertexInputBindingStrideAlignmentVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67109     PhysicalDevicePortabilitySubsetPropertiesKHR & setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
67110     {
67111       minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
67112       return *this;
67113     }
67114 
67115 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67116     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
67117     {
67118       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
67119     }
67120 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67121     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
67122     {
67123       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
67124     }
67125 
67126 
67127 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67128     auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const& ) const = default;
67129 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67130     bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67131     {
67132       return ( sType == rhs.sType )
67133           && ( pNext == rhs.pNext )
67134           && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment );
67135     }
67136 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR67137     bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67138     {
67139       return !operator==( rhs );
67140     }
67141 #endif
67142 
67143 
67144 
67145   public:
67146     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
67147     void* pNext = {};
67148     uint32_t minVertexInputBindingStrideAlignment = {};
67149 
67150   };
67151   static_assert( sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetPropertiesKHR ), "struct and wrapper have different size!" );
67152   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
67153 
67154   template <>
67155   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR>
67156   {
67157     using Type = PhysicalDevicePortabilitySubsetPropertiesKHR;
67158   };
67159 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
67160 
67161   struct PhysicalDevicePrivateDataFeaturesEXT
67162   {
67163     static const bool allowDuplicate = false;
67164     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
67165 
67166 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67167     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}) VULKAN_HPP_NOEXCEPT
67168     : privateData( privateData_ )
67169     {}
67170 
67171     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67172 
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67173     PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67174     {
67175       *this = rhs;
67176     }
67177 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67178 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67179     PhysicalDevicePrivateDataFeaturesEXT & operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67180     {
67181       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT const *>( &rhs );
67182       return *this;
67183     }
67184 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67185     PhysicalDevicePrivateDataFeaturesEXT & operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67186     {
67187       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePrivateDataFeaturesEXT ) );
67188       return *this;
67189     }
67190 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67191     PhysicalDevicePrivateDataFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67192     {
67193       pNext = pNext_;
67194       return *this;
67195     }
67196 
setPrivateDataVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67197     PhysicalDevicePrivateDataFeaturesEXT & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
67198     {
67199       privateData = privateData_;
67200       return *this;
67201     }
67202 
67203 
operator VkPhysicalDevicePrivateDataFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67204     operator VkPhysicalDevicePrivateDataFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
67205     {
67206       return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
67207     }
67208 
operator VkPhysicalDevicePrivateDataFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67209     operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT
67210     {
67211       return *reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
67212     }
67213 
67214 
67215 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67216     auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const& ) const = default;
67217 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67218     bool operator==( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67219     {
67220       return ( sType == rhs.sType )
67221           && ( pNext == rhs.pNext )
67222           && ( privateData == rhs.privateData );
67223     }
67224 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT67225     bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67226     {
67227       return !operator==( rhs );
67228     }
67229 #endif
67230 
67231 
67232 
67233   public:
67234     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
67235     void* pNext = {};
67236     VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
67237 
67238   };
67239   static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), "struct and wrapper have different size!" );
67240   static_assert( std::is_standard_layout<PhysicalDevicePrivateDataFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
67241 
67242   template <>
67243   struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeaturesEXT>
67244   {
67245     using Type = PhysicalDevicePrivateDataFeaturesEXT;
67246   };
67247 
67248   struct PhysicalDeviceProtectedMemoryFeatures
67249   {
67250     static const bool allowDuplicate = false;
67251     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
67252 
67253 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67254     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}) VULKAN_HPP_NOEXCEPT
67255     : protectedMemory( protectedMemory_ )
67256     {}
67257 
67258     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67259 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67260     PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67261     {
67262       *this = rhs;
67263     }
67264 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67265 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67266     PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67267     {
67268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>( &rhs );
67269       return *this;
67270     }
67271 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67272     PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67273     {
67274       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryFeatures ) );
67275       return *this;
67276     }
67277 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67278     PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67279     {
67280       pNext = pNext_;
67281       return *this;
67282     }
67283 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67284     PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
67285     {
67286       protectedMemory = protectedMemory_;
67287       return *this;
67288     }
67289 
67290 
operator VkPhysicalDeviceProtectedMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67291     operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT
67292     {
67293       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
67294     }
67295 
operator VkPhysicalDeviceProtectedMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67296     operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
67297     {
67298       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
67299     }
67300 
67301 
67302 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67303     auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const& ) const = default;
67304 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67305     bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67306     {
67307       return ( sType == rhs.sType )
67308           && ( pNext == rhs.pNext )
67309           && ( protectedMemory == rhs.protectedMemory );
67310     }
67311 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures67312     bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67313     {
67314       return !operator==( rhs );
67315     }
67316 #endif
67317 
67318 
67319 
67320   public:
67321     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
67322     void* pNext = {};
67323     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
67324 
67325   };
67326   static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" );
67327   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryFeatures>::value, "struct wrapper is not a standard layout!" );
67328 
67329   template <>
67330   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
67331   {
67332     using Type = PhysicalDeviceProtectedMemoryFeatures;
67333   };
67334 
67335   struct PhysicalDeviceProtectedMemoryProperties
67336   {
67337     static const bool allowDuplicate = false;
67338     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
67339 
67340 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67341     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties(VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}) VULKAN_HPP_NOEXCEPT
67342     : protectedNoFault( protectedNoFault_ )
67343     {}
67344 
67345     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67346 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67347     PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67348     {
67349       *this = rhs;
67350     }
67351 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67352 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67353     PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67354     {
67355       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>( &rhs );
67356       return *this;
67357     }
67358 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67359     PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67360     {
67361       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryProperties ) );
67362       return *this;
67363     }
67364 
67365 
operator VkPhysicalDeviceProtectedMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67366     operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
67367     {
67368       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
67369     }
67370 
operator VkPhysicalDeviceProtectedMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67371     operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
67372     {
67373       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
67374     }
67375 
67376 
67377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67378     auto operator<=>( PhysicalDeviceProtectedMemoryProperties const& ) const = default;
67379 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67380     bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67381     {
67382       return ( sType == rhs.sType )
67383           && ( pNext == rhs.pNext )
67384           && ( protectedNoFault == rhs.protectedNoFault );
67385     }
67386 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties67387     bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67388     {
67389       return !operator==( rhs );
67390     }
67391 #endif
67392 
67393 
67394 
67395   public:
67396     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
67397     void* pNext = {};
67398     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
67399 
67400   };
67401   static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" );
67402   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryProperties>::value, "struct wrapper is not a standard layout!" );
67403 
67404   template <>
67405   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
67406   {
67407     using Type = PhysicalDeviceProtectedMemoryProperties;
67408   };
67409 
67410   struct PhysicalDevicePushDescriptorPropertiesKHR
67411   {
67412     static const bool allowDuplicate = false;
67413     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
67414 
67415 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67416     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR(uint32_t maxPushDescriptors_ = {}) VULKAN_HPP_NOEXCEPT
67417     : maxPushDescriptors( maxPushDescriptors_ )
67418     {}
67419 
67420     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67421 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67422     PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67423     {
67424       *this = rhs;
67425     }
67426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67427 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67428     PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67429     {
67430       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs );
67431       return *this;
67432     }
67433 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67434     PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67435     {
67436       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) );
67437       return *this;
67438     }
67439 
67440 
operator VkPhysicalDevicePushDescriptorPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67441     operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
67442     {
67443       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
67444     }
67445 
operator VkPhysicalDevicePushDescriptorPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67446     operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
67447     {
67448       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
67449     }
67450 
67451 
67452 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67453     auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const& ) const = default;
67454 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67455     bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67456     {
67457       return ( sType == rhs.sType )
67458           && ( pNext == rhs.pNext )
67459           && ( maxPushDescriptors == rhs.maxPushDescriptors );
67460     }
67461 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR67462     bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67463     {
67464       return !operator==( rhs );
67465     }
67466 #endif
67467 
67468 
67469 
67470   public:
67471     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
67472     void* pNext = {};
67473     uint32_t maxPushDescriptors = {};
67474 
67475   };
67476   static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
67477   static_assert( std::is_standard_layout<PhysicalDevicePushDescriptorPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
67478 
67479   template <>
67480   struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
67481   {
67482     using Type = PhysicalDevicePushDescriptorPropertiesKHR;
67483   };
67484 
67485 #ifdef VK_ENABLE_BETA_EXTENSIONS
67486   struct PhysicalDeviceRayTracingFeaturesKHR
67487   {
67488     static const bool allowDuplicate = false;
67489     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
67490 
67491 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67492     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
67493     : rayTracing( rayTracing_ ), rayTracingShaderGroupHandleCaptureReplay( rayTracingShaderGroupHandleCaptureReplay_ ), rayTracingShaderGroupHandleCaptureReplayMixed( rayTracingShaderGroupHandleCaptureReplayMixed_ ), rayTracingAccelerationStructureCaptureReplay( rayTracingAccelerationStructureCaptureReplay_ ), rayTracingIndirectTraceRays( rayTracingIndirectTraceRays_ ), rayTracingIndirectAccelerationStructureBuild( rayTracingIndirectAccelerationStructureBuild_ ), rayTracingHostAccelerationStructureCommands( rayTracingHostAccelerationStructureCommands_ ), rayQuery( rayQuery_ ), rayTracingPrimitiveCulling( rayTracingPrimitiveCulling_ )
67494     {}
67495 
67496     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingFeaturesKHR( PhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67497 
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67498     PhysicalDeviceRayTracingFeaturesKHR( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67499     {
67500       *this = rhs;
67501     }
67502 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67503 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67504     PhysicalDeviceRayTracingFeaturesKHR & operator=( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67505     {
67506       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR const *>( &rhs );
67507       return *this;
67508     }
67509 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67510     PhysicalDeviceRayTracingFeaturesKHR & operator=( PhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67511     {
67512       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingFeaturesKHR ) );
67513       return *this;
67514     }
67515 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67516     PhysicalDeviceRayTracingFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67517     {
67518       pNext = pNext_;
67519       return *this;
67520     }
67521 
setRayTracingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67522     PhysicalDeviceRayTracingFeaturesKHR & setRayTracing( VULKAN_HPP_NAMESPACE::Bool32 rayTracing_ ) VULKAN_HPP_NOEXCEPT
67523     {
67524       rayTracing = rayTracing_;
67525       return *this;
67526     }
67527 
setRayTracingShaderGroupHandleCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67528     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
67529     {
67530       rayTracingShaderGroupHandleCaptureReplay = rayTracingShaderGroupHandleCaptureReplay_;
67531       return *this;
67532     }
67533 
setRayTracingShaderGroupHandleCaptureReplayMixedVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67534     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
67535     {
67536       rayTracingShaderGroupHandleCaptureReplayMixed = rayTracingShaderGroupHandleCaptureReplayMixed_;
67537       return *this;
67538     }
67539 
setRayTracingAccelerationStructureCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67540     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
67541     {
67542       rayTracingAccelerationStructureCaptureReplay = rayTracingAccelerationStructureCaptureReplay_;
67543       return *this;
67544     }
67545 
setRayTracingIndirectTraceRaysVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67546     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectTraceRays( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays_ ) VULKAN_HPP_NOEXCEPT
67547     {
67548       rayTracingIndirectTraceRays = rayTracingIndirectTraceRays_;
67549       return *this;
67550     }
67551 
setRayTracingIndirectAccelerationStructureBuildVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67552     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectAccelerationStructureBuild( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild_ ) VULKAN_HPP_NOEXCEPT
67553     {
67554       rayTracingIndirectAccelerationStructureBuild = rayTracingIndirectAccelerationStructureBuild_;
67555       return *this;
67556     }
67557 
setRayTracingHostAccelerationStructureCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67558     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingHostAccelerationStructureCommands( VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands_ ) VULKAN_HPP_NOEXCEPT
67559     {
67560       rayTracingHostAccelerationStructureCommands = rayTracingHostAccelerationStructureCommands_;
67561       return *this;
67562     }
67563 
setRayQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67564     PhysicalDeviceRayTracingFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
67565     {
67566       rayQuery = rayQuery_;
67567       return *this;
67568     }
67569 
setRayTracingPrimitiveCullingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67570     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
67571     {
67572       rayTracingPrimitiveCulling = rayTracingPrimitiveCulling_;
67573       return *this;
67574     }
67575 
67576 
operator VkPhysicalDeviceRayTracingFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67577     operator VkPhysicalDeviceRayTracingFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67578     {
67579       return *reinterpret_cast<const VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
67580     }
67581 
operator VkPhysicalDeviceRayTracingFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67582     operator VkPhysicalDeviceRayTracingFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67583     {
67584       return *reinterpret_cast<VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
67585     }
67586 
67587 
67588 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67589     auto operator<=>( PhysicalDeviceRayTracingFeaturesKHR const& ) const = default;
67590 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67591     bool operator==( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67592     {
67593       return ( sType == rhs.sType )
67594           && ( pNext == rhs.pNext )
67595           && ( rayTracing == rhs.rayTracing )
67596           && ( rayTracingShaderGroupHandleCaptureReplay == rhs.rayTracingShaderGroupHandleCaptureReplay )
67597           && ( rayTracingShaderGroupHandleCaptureReplayMixed == rhs.rayTracingShaderGroupHandleCaptureReplayMixed )
67598           && ( rayTracingAccelerationStructureCaptureReplay == rhs.rayTracingAccelerationStructureCaptureReplay )
67599           && ( rayTracingIndirectTraceRays == rhs.rayTracingIndirectTraceRays )
67600           && ( rayTracingIndirectAccelerationStructureBuild == rhs.rayTracingIndirectAccelerationStructureBuild )
67601           && ( rayTracingHostAccelerationStructureCommands == rhs.rayTracingHostAccelerationStructureCommands )
67602           && ( rayQuery == rhs.rayQuery )
67603           && ( rayTracingPrimitiveCulling == rhs.rayTracingPrimitiveCulling );
67604     }
67605 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR67606     bool operator!=( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67607     {
67608       return !operator==( rhs );
67609     }
67610 #endif
67611 
67612 
67613 
67614   public:
67615     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
67616     void* pNext = {};
67617     VULKAN_HPP_NAMESPACE::Bool32 rayTracing = {};
67618     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay = {};
67619     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed = {};
67620     VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay = {};
67621     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays = {};
67622     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild = {};
67623     VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands = {};
67624     VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
67625     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling = {};
67626 
67627   };
67628   static_assert( sizeof( PhysicalDeviceRayTracingFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingFeaturesKHR ), "struct and wrapper have different size!" );
67629   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67630 
67631   template <>
67632   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingFeaturesKHR>
67633   {
67634     using Type = PhysicalDeviceRayTracingFeaturesKHR;
67635   };
67636 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
67637 
67638 #ifdef VK_ENABLE_BETA_EXTENSIONS
67639   struct PhysicalDeviceRayTracingPropertiesKHR
67640   {
67641     static const bool allowDuplicate = false;
67642     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
67643 
67644 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67645     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
67646     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxPrimitiveCount( maxPrimitiveCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ), shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ )
67647     {}
67648 
67649     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesKHR( PhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67650 
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67651     PhysicalDeviceRayTracingPropertiesKHR( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67652     {
67653       *this = rhs;
67654     }
67655 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67656 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67657     PhysicalDeviceRayTracingPropertiesKHR & operator=( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67658     {
67659       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR const *>( &rhs );
67660       return *this;
67661     }
67662 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67663     PhysicalDeviceRayTracingPropertiesKHR & operator=( PhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67664     {
67665       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingPropertiesKHR ) );
67666       return *this;
67667     }
67668 
67669 
operator VkPhysicalDeviceRayTracingPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67670     operator VkPhysicalDeviceRayTracingPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
67671     {
67672       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
67673     }
67674 
operator VkPhysicalDeviceRayTracingPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67675     operator VkPhysicalDeviceRayTracingPropertiesKHR &() VULKAN_HPP_NOEXCEPT
67676     {
67677       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
67678     }
67679 
67680 
67681 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67682     auto operator<=>( PhysicalDeviceRayTracingPropertiesKHR const& ) const = default;
67683 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67684     bool operator==( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67685     {
67686       return ( sType == rhs.sType )
67687           && ( pNext == rhs.pNext )
67688           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
67689           && ( maxRecursionDepth == rhs.maxRecursionDepth )
67690           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
67691           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
67692           && ( maxGeometryCount == rhs.maxGeometryCount )
67693           && ( maxInstanceCount == rhs.maxInstanceCount )
67694           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
67695           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures )
67696           && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize );
67697     }
67698 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR67699     bool operator!=( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67700     {
67701       return !operator==( rhs );
67702     }
67703 #endif
67704 
67705 
67706 
67707   public:
67708     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
67709     void* pNext = {};
67710     uint32_t shaderGroupHandleSize = {};
67711     uint32_t maxRecursionDepth = {};
67712     uint32_t maxShaderGroupStride = {};
67713     uint32_t shaderGroupBaseAlignment = {};
67714     uint64_t maxGeometryCount = {};
67715     uint64_t maxInstanceCount = {};
67716     uint64_t maxPrimitiveCount = {};
67717     uint32_t maxDescriptorSetAccelerationStructures = {};
67718     uint32_t shaderGroupHandleCaptureReplaySize = {};
67719 
67720   };
67721   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesKHR ) == sizeof( VkPhysicalDeviceRayTracingPropertiesKHR ), "struct and wrapper have different size!" );
67722   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
67723 
67724   template <>
67725   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesKHR>
67726   {
67727     using Type = PhysicalDeviceRayTracingPropertiesKHR;
67728   };
67729 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
67730 
67731   struct PhysicalDeviceRayTracingPropertiesNV
67732   {
67733     static const bool allowDuplicate = false;
67734     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
67735 
67736 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67737     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
67738     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxTriangleCount( maxTriangleCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
67739     {}
67740 
67741     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67742 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67743     PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67744     {
67745       *this = rhs;
67746     }
67747 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67748 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67749     PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67750     {
67751       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>( &rhs );
67752       return *this;
67753     }
67754 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67755     PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67756     {
67757       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingPropertiesNV ) );
67758       return *this;
67759     }
67760 
67761 
operator VkPhysicalDeviceRayTracingPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67762     operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
67763     {
67764       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
67765     }
67766 
operator VkPhysicalDeviceRayTracingPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67767     operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
67768     {
67769       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
67770     }
67771 
67772 
67773 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67774     auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const& ) const = default;
67775 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67776     bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67777     {
67778       return ( sType == rhs.sType )
67779           && ( pNext == rhs.pNext )
67780           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
67781           && ( maxRecursionDepth == rhs.maxRecursionDepth )
67782           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
67783           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
67784           && ( maxGeometryCount == rhs.maxGeometryCount )
67785           && ( maxInstanceCount == rhs.maxInstanceCount )
67786           && ( maxTriangleCount == rhs.maxTriangleCount )
67787           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
67788     }
67789 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV67790     bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67791     {
67792       return !operator==( rhs );
67793     }
67794 #endif
67795 
67796 
67797 
67798   public:
67799     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
67800     void* pNext = {};
67801     uint32_t shaderGroupHandleSize = {};
67802     uint32_t maxRecursionDepth = {};
67803     uint32_t maxShaderGroupStride = {};
67804     uint32_t shaderGroupBaseAlignment = {};
67805     uint64_t maxGeometryCount = {};
67806     uint64_t maxInstanceCount = {};
67807     uint64_t maxTriangleCount = {};
67808     uint32_t maxDescriptorSetAccelerationStructures = {};
67809 
67810   };
67811   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" );
67812   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesNV>::value, "struct wrapper is not a standard layout!" );
67813 
67814   template <>
67815   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
67816   {
67817     using Type = PhysicalDeviceRayTracingPropertiesNV;
67818   };
67819 
67820   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
67821   {
67822     static const bool allowDuplicate = false;
67823     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
67824 
67825 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67826     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {}) VULKAN_HPP_NOEXCEPT
67827     : representativeFragmentTest( representativeFragmentTest_ )
67828     {}
67829 
67830     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67831 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67832     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67833     {
67834       *this = rhs;
67835     }
67836 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67837 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67838     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67839     {
67840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs );
67841       return *this;
67842     }
67843 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67844     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67845     {
67846       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) );
67847       return *this;
67848     }
67849 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67850     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67851     {
67852       pNext = pNext_;
67853       return *this;
67854     }
67855 
setRepresentativeFragmentTestVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67856     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
67857     {
67858       representativeFragmentTest = representativeFragmentTest_;
67859       return *this;
67860     }
67861 
67862 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67863     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
67864     {
67865       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
67866     }
67867 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67868     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
67869     {
67870       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
67871     }
67872 
67873 
67874 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67875     auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& ) const = default;
67876 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67877     bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67878     {
67879       return ( sType == rhs.sType )
67880           && ( pNext == rhs.pNext )
67881           && ( representativeFragmentTest == rhs.representativeFragmentTest );
67882     }
67883 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV67884     bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67885     {
67886       return !operator==( rhs );
67887     }
67888 #endif
67889 
67890 
67891 
67892   public:
67893     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
67894     void* pNext = {};
67895     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
67896 
67897   };
67898   static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" );
67899   static_assert( std::is_standard_layout<PhysicalDeviceRepresentativeFragmentTestFeaturesNV>::value, "struct wrapper is not a standard layout!" );
67900 
67901   template <>
67902   struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
67903   {
67904     using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
67905   };
67906 
67907   struct PhysicalDeviceRobustness2FeaturesEXT
67908   {
67909     static const bool allowDuplicate = false;
67910     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
67911 
67912 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67913     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
67914     : robustBufferAccess2( robustBufferAccess2_ ), robustImageAccess2( robustImageAccess2_ ), nullDescriptor( nullDescriptor_ )
67915     {}
67916 
67917     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67918 
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67919     PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67920     {
67921       *this = rhs;
67922     }
67923 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67924 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67925     PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67926     {
67927       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs );
67928       return *this;
67929     }
67930 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67931     PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67932     {
67933       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRobustness2FeaturesEXT ) );
67934       return *this;
67935     }
67936 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67937     PhysicalDeviceRobustness2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67938     {
67939       pNext = pNext_;
67940       return *this;
67941     }
67942 
setRobustBufferAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67943     PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
67944     {
67945       robustBufferAccess2 = robustBufferAccess2_;
67946       return *this;
67947     }
67948 
setRobustImageAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67949     PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
67950     {
67951       robustImageAccess2 = robustImageAccess2_;
67952       return *this;
67953     }
67954 
setNullDescriptorVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67955     PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
67956     {
67957       nullDescriptor = nullDescriptor_;
67958       return *this;
67959     }
67960 
67961 
operator VkPhysicalDeviceRobustness2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67962     operator VkPhysicalDeviceRobustness2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
67963     {
67964       return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
67965     }
67966 
operator VkPhysicalDeviceRobustness2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67967     operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
67968     {
67969       return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
67970     }
67971 
67972 
67973 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67974     auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const& ) const = default;
67975 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67976     bool operator==( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67977     {
67978       return ( sType == rhs.sType )
67979           && ( pNext == rhs.pNext )
67980           && ( robustBufferAccess2 == rhs.robustBufferAccess2 )
67981           && ( robustImageAccess2 == rhs.robustImageAccess2 )
67982           && ( nullDescriptor == rhs.nullDescriptor );
67983     }
67984 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT67985     bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67986     {
67987       return !operator==( rhs );
67988     }
67989 #endif
67990 
67991 
67992 
67993   public:
67994     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
67995     void* pNext = {};
67996     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
67997     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
67998     VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
67999 
68000   };
68001   static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), "struct and wrapper have different size!" );
68002   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
68003 
68004   template <>
68005   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
68006   {
68007     using Type = PhysicalDeviceRobustness2FeaturesEXT;
68008   };
68009 
68010   struct PhysicalDeviceRobustness2PropertiesEXT
68011   {
68012     static const bool allowDuplicate = false;
68013     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
68014 
68015 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68016     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {}) VULKAN_HPP_NOEXCEPT
68017     : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ), robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
68018     {}
68019 
68020     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68021 
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68022     PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68023     {
68024       *this = rhs;
68025     }
68026 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68027 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68028     PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68029     {
68030       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs );
68031       return *this;
68032     }
68033 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68034     PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68035     {
68036       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRobustness2PropertiesEXT ) );
68037       return *this;
68038     }
68039 
68040 
operator VkPhysicalDeviceRobustness2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68041     operator VkPhysicalDeviceRobustness2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
68042     {
68043       return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
68044     }
68045 
operator VkPhysicalDeviceRobustness2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68046     operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
68047     {
68048       return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
68049     }
68050 
68051 
68052 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68053     auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const& ) const = default;
68054 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68055     bool operator==( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68056     {
68057       return ( sType == rhs.sType )
68058           && ( pNext == rhs.pNext )
68059           && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment )
68060           && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
68061     }
68062 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT68063     bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68064     {
68065       return !operator==( rhs );
68066     }
68067 #endif
68068 
68069 
68070 
68071   public:
68072     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
68073     void* pNext = {};
68074     VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
68075     VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
68076 
68077   };
68078   static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), "struct and wrapper have different size!" );
68079   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
68080 
68081   template <>
68082   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
68083   {
68084     using Type = PhysicalDeviceRobustness2PropertiesEXT;
68085   };
68086 
68087   struct PhysicalDeviceSampleLocationsPropertiesEXT
68088   {
68089     static const bool allowDuplicate = false;
68090     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
68091 
68092 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68093     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
68094     : sampleLocationSampleCounts( sampleLocationSampleCounts_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ ), sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ), sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ), variableSampleLocations( variableSampleLocations_ )
68095     {}
68096 
68097     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68098 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68099     PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68100     {
68101       *this = rhs;
68102     }
68103 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68104 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68105     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68106     {
68107       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs );
68108       return *this;
68109     }
68110 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68111     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68112     {
68113       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) );
68114       return *this;
68115     }
68116 
68117 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68118     operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
68119     {
68120       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
68121     }
68122 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68123     operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
68124     {
68125       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
68126     }
68127 
68128 
68129 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68130     auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const& ) const = default;
68131 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68132     bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68133     {
68134       return ( sType == rhs.sType )
68135           && ( pNext == rhs.pNext )
68136           && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
68137           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
68138           && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange )
68139           && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
68140           && ( variableSampleLocations == rhs.variableSampleLocations );
68141     }
68142 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT68143     bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68144     {
68145       return !operator==( rhs );
68146     }
68147 #endif
68148 
68149 
68150 
68151   public:
68152     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
68153     void* pNext = {};
68154     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
68155     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
68156     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
68157     uint32_t sampleLocationSubPixelBits = {};
68158     VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
68159 
68160   };
68161   static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" );
68162   static_assert( std::is_standard_layout<PhysicalDeviceSampleLocationsPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
68163 
68164   template <>
68165   struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
68166   {
68167     using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
68168   };
68169 
68170   struct PhysicalDeviceSamplerFilterMinmaxProperties
68171   {
68172     static const bool allowDuplicate = false;
68173     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
68174 
68175 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68176     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties(VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}) VULKAN_HPP_NOEXCEPT
68177     : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
68178     {}
68179 
68180     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68181 
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68182     PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68183     {
68184       *this = rhs;
68185     }
68186 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68187 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68188     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68189     {
68190       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs );
68191       return *this;
68192     }
68193 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68194     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68195     {
68196       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) );
68197       return *this;
68198     }
68199 
68200 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68201     operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT
68202     {
68203       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
68204     }
68205 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68206     operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
68207     {
68208       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
68209     }
68210 
68211 
68212 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68213     auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const& ) const = default;
68214 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68215     bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68216     {
68217       return ( sType == rhs.sType )
68218           && ( pNext == rhs.pNext )
68219           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
68220           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
68221     }
68222 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties68223     bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68224     {
68225       return !operator==( rhs );
68226     }
68227 #endif
68228 
68229 
68230 
68231   public:
68232     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
68233     void* pNext = {};
68234     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
68235     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
68236 
68237   };
68238   static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" );
68239   static_assert( std::is_standard_layout<PhysicalDeviceSamplerFilterMinmaxProperties>::value, "struct wrapper is not a standard layout!" );
68240 
68241   template <>
68242   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
68243   {
68244     using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
68245   };
68246   using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
68247 
68248   struct PhysicalDeviceSamplerYcbcrConversionFeatures
68249   {
68250     static const bool allowDuplicate = false;
68251     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
68252 
68253 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68254     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures(VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}) VULKAN_HPP_NOEXCEPT
68255     : samplerYcbcrConversion( samplerYcbcrConversion_ )
68256     {}
68257 
68258     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68259 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68260     PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68261     {
68262       *this = rhs;
68263     }
68264 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68265 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68266     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68267     {
68268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs );
68269       return *this;
68270     }
68271 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68272     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68273     {
68274       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) );
68275       return *this;
68276     }
68277 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68278     PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68279     {
68280       pNext = pNext_;
68281       return *this;
68282     }
68283 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68284     PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
68285     {
68286       samplerYcbcrConversion = samplerYcbcrConversion_;
68287       return *this;
68288     }
68289 
68290 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68291     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT
68292     {
68293       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
68294     }
68295 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68296     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
68297     {
68298       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
68299     }
68300 
68301 
68302 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68303     auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const& ) const = default;
68304 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68305     bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68306     {
68307       return ( sType == rhs.sType )
68308           && ( pNext == rhs.pNext )
68309           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
68310     }
68311 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures68312     bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68313     {
68314       return !operator==( rhs );
68315     }
68316 #endif
68317 
68318 
68319 
68320   public:
68321     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
68322     void* pNext = {};
68323     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
68324 
68325   };
68326   static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" );
68327   static_assert( std::is_standard_layout<PhysicalDeviceSamplerYcbcrConversionFeatures>::value, "struct wrapper is not a standard layout!" );
68328 
68329   template <>
68330   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
68331   {
68332     using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
68333   };
68334   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
68335 
68336   struct PhysicalDeviceScalarBlockLayoutFeatures
68337   {
68338     static const bool allowDuplicate = false;
68339     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
68340 
68341 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68342     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}) VULKAN_HPP_NOEXCEPT
68343     : scalarBlockLayout( scalarBlockLayout_ )
68344     {}
68345 
68346     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68347 
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68348     PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68349     {
68350       *this = rhs;
68351     }
68352 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68353 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68354     PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68355     {
68356       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs );
68357       return *this;
68358     }
68359 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68360     PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68361     {
68362       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) );
68363       return *this;
68364     }
68365 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68366     PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68367     {
68368       pNext = pNext_;
68369       return *this;
68370     }
68371 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68372     PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
68373     {
68374       scalarBlockLayout = scalarBlockLayout_;
68375       return *this;
68376     }
68377 
68378 
operator VkPhysicalDeviceScalarBlockLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68379     operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
68380     {
68381       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
68382     }
68383 
operator VkPhysicalDeviceScalarBlockLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68384     operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
68385     {
68386       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
68387     }
68388 
68389 
68390 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68391     auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const& ) const = default;
68392 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68393     bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68394     {
68395       return ( sType == rhs.sType )
68396           && ( pNext == rhs.pNext )
68397           && ( scalarBlockLayout == rhs.scalarBlockLayout );
68398     }
68399 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures68400     bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68401     {
68402       return !operator==( rhs );
68403     }
68404 #endif
68405 
68406 
68407 
68408   public:
68409     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
68410     void* pNext = {};
68411     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
68412 
68413   };
68414   static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" );
68415   static_assert( std::is_standard_layout<PhysicalDeviceScalarBlockLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
68416 
68417   template <>
68418   struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
68419   {
68420     using Type = PhysicalDeviceScalarBlockLayoutFeatures;
68421   };
68422   using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
68423 
68424   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
68425   {
68426     static const bool allowDuplicate = false;
68427     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
68428 
68429 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68430     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures(VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}) VULKAN_HPP_NOEXCEPT
68431     : separateDepthStencilLayouts( separateDepthStencilLayouts_ )
68432     {}
68433 
68434     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68435 
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68436     PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68437     {
68438       *this = rhs;
68439     }
68440 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68441 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68442     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68443     {
68444       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs );
68445       return *this;
68446     }
68447 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68448     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68449     {
68450       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) );
68451       return *this;
68452     }
68453 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68454     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68455     {
68456       pNext = pNext_;
68457       return *this;
68458     }
68459 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68460     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
68461     {
68462       separateDepthStencilLayouts = separateDepthStencilLayouts_;
68463       return *this;
68464     }
68465 
68466 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68467     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT
68468     {
68469       return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
68470     }
68471 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68472     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
68473     {
68474       return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
68475     }
68476 
68477 
68478 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68479     auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& ) const = default;
68480 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68481     bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68482     {
68483       return ( sType == rhs.sType )
68484           && ( pNext == rhs.pNext )
68485           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
68486     }
68487 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures68488     bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68489     {
68490       return !operator==( rhs );
68491     }
68492 #endif
68493 
68494 
68495 
68496   public:
68497     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
68498     void* pNext = {};
68499     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
68500 
68501   };
68502   static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" );
68503   static_assert( std::is_standard_layout<PhysicalDeviceSeparateDepthStencilLayoutsFeatures>::value, "struct wrapper is not a standard layout!" );
68504 
68505   template <>
68506   struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
68507   {
68508     using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
68509   };
68510   using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
68511 
68512   struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
68513   {
68514     static const bool allowDuplicate = false;
68515     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
68516 
68517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68518     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
68519     : shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ), shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ), shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ), shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ), shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ), shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ), shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ), shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ), shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ), shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ), sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ), sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
68520     {}
68521 
68522     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68523 
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68524     PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68525     {
68526       *this = rhs;
68527     }
68528 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68529 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68530     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68531     {
68532       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs );
68533       return *this;
68534     }
68535 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68536     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68537     {
68538       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) );
68539       return *this;
68540     }
68541 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68542     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68543     {
68544       pNext = pNext_;
68545       return *this;
68546     }
68547 
setShaderBufferFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68548     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
68549     {
68550       shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
68551       return *this;
68552     }
68553 
setShaderBufferFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68554     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
68555     {
68556       shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
68557       return *this;
68558     }
68559 
setShaderBufferFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68560     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
68561     {
68562       shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
68563       return *this;
68564     }
68565 
setShaderBufferFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68566     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
68567     {
68568       shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
68569       return *this;
68570     }
68571 
setShaderSharedFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68572     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
68573     {
68574       shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
68575       return *this;
68576     }
68577 
setShaderSharedFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68578     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
68579     {
68580       shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
68581       return *this;
68582     }
68583 
setShaderSharedFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68584     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
68585     {
68586       shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
68587       return *this;
68588     }
68589 
setShaderSharedFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68590     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
68591     {
68592       shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
68593       return *this;
68594     }
68595 
setShaderImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68596     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
68597     {
68598       shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
68599       return *this;
68600     }
68601 
setShaderImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68602     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
68603     {
68604       shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
68605       return *this;
68606     }
68607 
setSparseImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68608     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
68609     {
68610       sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
68611       return *this;
68612     }
68613 
setSparseImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68614     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
68615     {
68616       sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
68617       return *this;
68618     }
68619 
68620 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68621     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
68622     {
68623       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
68624     }
68625 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68626     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68627     {
68628       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
68629     }
68630 
68631 
68632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68633     auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& ) const = default;
68634 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68635     bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68636     {
68637       return ( sType == rhs.sType )
68638           && ( pNext == rhs.pNext )
68639           && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics )
68640           && ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd )
68641           && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics )
68642           && ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd )
68643           && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics )
68644           && ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd )
68645           && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics )
68646           && ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd )
68647           && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics )
68648           && ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd )
68649           && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics )
68650           && ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd );
68651     }
68652 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT68653     bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68654     {
68655       return !operator==( rhs );
68656     }
68657 #endif
68658 
68659 
68660 
68661   public:
68662     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
68663     void* pNext = {};
68664     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {};
68665     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {};
68666     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {};
68667     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {};
68668     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {};
68669     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {};
68670     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {};
68671     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {};
68672     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {};
68673     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {};
68674     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {};
68675     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {};
68676 
68677   };
68678   static_assert( sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT ), "struct and wrapper have different size!" );
68679   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicFloatFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
68680 
68681   template <>
68682   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT>
68683   {
68684     using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
68685   };
68686 
68687   struct PhysicalDeviceShaderAtomicInt64Features
68688   {
68689     static const bool allowDuplicate = false;
68690     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
68691 
68692 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68693     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
68694     : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
68695     {}
68696 
68697     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68698 
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68699     PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
68700     {
68701       *this = rhs;
68702     }
68703 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68704 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68705     PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
68706     {
68707       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>( &rhs );
68708       return *this;
68709     }
68710 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68711     PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
68712     {
68713       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicInt64Features ) );
68714       return *this;
68715     }
68716 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68717     PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68718     {
68719       pNext = pNext_;
68720       return *this;
68721     }
68722 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68723     PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
68724     {
68725       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
68726       return *this;
68727     }
68728 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68729     PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
68730     {
68731       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
68732       return *this;
68733     }
68734 
68735 
operator VkPhysicalDeviceShaderAtomicInt64Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68736     operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT
68737     {
68738       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>( this );
68739     }
68740 
operator VkPhysicalDeviceShaderAtomicInt64Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68741     operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
68742     {
68743       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>( this );
68744     }
68745 
68746 
68747 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68748     auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const& ) const = default;
68749 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68750     bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
68751     {
68752       return ( sType == rhs.sType )
68753           && ( pNext == rhs.pNext )
68754           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
68755           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
68756     }
68757 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features68758     bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
68759     {
68760       return !operator==( rhs );
68761     }
68762 #endif
68763 
68764 
68765 
68766   public:
68767     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
68768     void* pNext = {};
68769     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
68770     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
68771 
68772   };
68773   static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" );
68774   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicInt64Features>::value, "struct wrapper is not a standard layout!" );
68775 
68776   template <>
68777   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
68778   {
68779     using Type = PhysicalDeviceShaderAtomicInt64Features;
68780   };
68781   using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
68782 
68783   struct PhysicalDeviceShaderClockFeaturesKHR
68784   {
68785     static const bool allowDuplicate = false;
68786     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
68787 
68788 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68789     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {}) VULKAN_HPP_NOEXCEPT
68790     : shaderSubgroupClock( shaderSubgroupClock_ ), shaderDeviceClock( shaderDeviceClock_ )
68791     {}
68792 
68793     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68794 
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68795     PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68796     {
68797       *this = rhs;
68798     }
68799 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68800 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68801     PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68802     {
68803       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs );
68804       return *this;
68805     }
68806 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68807     PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68808     {
68809       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderClockFeaturesKHR ) );
68810       return *this;
68811     }
68812 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68813     PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68814     {
68815       pNext = pNext_;
68816       return *this;
68817     }
68818 
setShaderSubgroupClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68819     PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
68820     {
68821       shaderSubgroupClock = shaderSubgroupClock_;
68822       return *this;
68823     }
68824 
setShaderDeviceClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68825     PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
68826     {
68827       shaderDeviceClock = shaderDeviceClock_;
68828       return *this;
68829     }
68830 
68831 
operator VkPhysicalDeviceShaderClockFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68832     operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
68833     {
68834       return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
68835     }
68836 
operator VkPhysicalDeviceShaderClockFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68837     operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
68838     {
68839       return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
68840     }
68841 
68842 
68843 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68844     auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const& ) const = default;
68845 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68846     bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68847     {
68848       return ( sType == rhs.sType )
68849           && ( pNext == rhs.pNext )
68850           && ( shaderSubgroupClock == rhs.shaderSubgroupClock )
68851           && ( shaderDeviceClock == rhs.shaderDeviceClock );
68852     }
68853 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR68854     bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68855     {
68856       return !operator==( rhs );
68857     }
68858 #endif
68859 
68860 
68861 
68862   public:
68863     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
68864     void* pNext = {};
68865     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
68866     VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
68867 
68868   };
68869   static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" );
68870   static_assert( std::is_standard_layout<PhysicalDeviceShaderClockFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
68871 
68872   template <>
68873   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
68874   {
68875     using Type = PhysicalDeviceShaderClockFeaturesKHR;
68876   };
68877 
68878   struct PhysicalDeviceShaderCoreProperties2AMD
68879   {
68880     static const bool allowDuplicate = false;
68881     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
68882 
68883 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68884     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD(VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, uint32_t activeComputeUnitCount_ = {}) VULKAN_HPP_NOEXCEPT
68885     : shaderCoreFeatures( shaderCoreFeatures_ ), activeComputeUnitCount( activeComputeUnitCount_ )
68886     {}
68887 
68888     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68889 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68890     PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
68891     {
68892       *this = rhs;
68893     }
68894 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68895 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68896     PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
68897     {
68898       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs );
68899       return *this;
68900     }
68901 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68902     PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
68903     {
68904       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderCoreProperties2AMD ) );
68905       return *this;
68906     }
68907 
68908 
operator VkPhysicalDeviceShaderCoreProperties2AMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68909     operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT
68910     {
68911       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
68912     }
68913 
operator VkPhysicalDeviceShaderCoreProperties2AMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68914     operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
68915     {
68916       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
68917     }
68918 
68919 
68920 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68921     auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const& ) const = default;
68922 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68923     bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
68924     {
68925       return ( sType == rhs.sType )
68926           && ( pNext == rhs.pNext )
68927           && ( shaderCoreFeatures == rhs.shaderCoreFeatures )
68928           && ( activeComputeUnitCount == rhs.activeComputeUnitCount );
68929     }
68930 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD68931     bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
68932     {
68933       return !operator==( rhs );
68934     }
68935 #endif
68936 
68937 
68938 
68939   public:
68940     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
68941     void* pNext = {};
68942     VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
68943     uint32_t activeComputeUnitCount = {};
68944 
68945   };
68946   static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" );
68947   static_assert( std::is_standard_layout<PhysicalDeviceShaderCoreProperties2AMD>::value, "struct wrapper is not a standard layout!" );
68948 
68949   template <>
68950   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
68951   {
68952     using Type = PhysicalDeviceShaderCoreProperties2AMD;
68953   };
68954 
68955   struct PhysicalDeviceShaderCorePropertiesAMD
68956   {
68957     static const bool allowDuplicate = false;
68958     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
68959 
68960 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD68961     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
68962     : 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_ )
68963     {}
68964 
68965     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68966 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD68967     PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
68968     {
68969       *this = rhs;
68970     }
68971 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68972 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD68973     PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
68974     {
68975       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs );
68976       return *this;
68977     }
68978 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD68979     PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
68980     {
68981       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderCorePropertiesAMD ) );
68982       return *this;
68983     }
68984 
68985 
operator VkPhysicalDeviceShaderCorePropertiesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD68986     operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
68987     {
68988       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
68989     }
68990 
operator VkPhysicalDeviceShaderCorePropertiesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD68991     operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
68992     {
68993       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
68994     }
68995 
68996 
68997 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68998     auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const& ) const = default;
68999 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69000     bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69001     {
69002       return ( sType == rhs.sType )
69003           && ( pNext == rhs.pNext )
69004           && ( shaderEngineCount == rhs.shaderEngineCount )
69005           && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
69006           && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
69007           && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
69008           && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
69009           && ( wavefrontSize == rhs.wavefrontSize )
69010           && ( sgprsPerSimd == rhs.sgprsPerSimd )
69011           && ( minSgprAllocation == rhs.minSgprAllocation )
69012           && ( maxSgprAllocation == rhs.maxSgprAllocation )
69013           && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
69014           && ( vgprsPerSimd == rhs.vgprsPerSimd )
69015           && ( minVgprAllocation == rhs.minVgprAllocation )
69016           && ( maxVgprAllocation == rhs.maxVgprAllocation )
69017           && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
69018     }
69019 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69020     bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69021     {
69022       return !operator==( rhs );
69023     }
69024 #endif
69025 
69026 
69027 
69028   public:
69029     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
69030     void* pNext = {};
69031     uint32_t shaderEngineCount = {};
69032     uint32_t shaderArraysPerEngineCount = {};
69033     uint32_t computeUnitsPerShaderArray = {};
69034     uint32_t simdPerComputeUnit = {};
69035     uint32_t wavefrontsPerSimd = {};
69036     uint32_t wavefrontSize = {};
69037     uint32_t sgprsPerSimd = {};
69038     uint32_t minSgprAllocation = {};
69039     uint32_t maxSgprAllocation = {};
69040     uint32_t sgprAllocationGranularity = {};
69041     uint32_t vgprsPerSimd = {};
69042     uint32_t minVgprAllocation = {};
69043     uint32_t maxVgprAllocation = {};
69044     uint32_t vgprAllocationGranularity = {};
69045 
69046   };
69047   static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" );
69048   static_assert( std::is_standard_layout<PhysicalDeviceShaderCorePropertiesAMD>::value, "struct wrapper is not a standard layout!" );
69049 
69050   template <>
69051   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
69052   {
69053     using Type = PhysicalDeviceShaderCorePropertiesAMD;
69054   };
69055 
69056   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
69057   {
69058     static const bool allowDuplicate = false;
69059     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
69060 
69061 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69062     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}) VULKAN_HPP_NOEXCEPT
69063     : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
69064     {}
69065 
69066     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69067 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69068     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69069     {
69070       *this = rhs;
69071     }
69072 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69073 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69074     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69075     {
69076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const *>( &rhs );
69077       return *this;
69078     }
69079 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69080     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69081     {
69082       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) );
69083       return *this;
69084     }
69085 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69086     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69087     {
69088       pNext = pNext_;
69089       return *this;
69090     }
69091 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69092     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
69093     {
69094       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
69095       return *this;
69096     }
69097 
69098 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69099     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
69100     {
69101       return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
69102     }
69103 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69104     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69105     {
69106       return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
69107     }
69108 
69109 
69110 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69111     auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& ) const = default;
69112 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69113     bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69114     {
69115       return ( sType == rhs.sType )
69116           && ( pNext == rhs.pNext )
69117           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
69118     }
69119 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT69120     bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69121     {
69122       return !operator==( rhs );
69123     }
69124 #endif
69125 
69126 
69127 
69128   public:
69129     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
69130     void* pNext = {};
69131     VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
69132 
69133   };
69134   static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" );
69135   static_assert( std::is_standard_layout<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
69136 
69137   template <>
69138   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>
69139   {
69140     using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
69141   };
69142 
69143   struct PhysicalDeviceShaderDrawParametersFeatures
69144   {
69145     static const bool allowDuplicate = false;
69146     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
69147 
69148 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69149     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT
69150     : shaderDrawParameters( shaderDrawParameters_ )
69151     {}
69152 
69153     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69154 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69155     PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69156     {
69157       *this = rhs;
69158     }
69159 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69160 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69161     PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69162     {
69163       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs );
69164       return *this;
69165     }
69166 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69167     PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69168     {
69169       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderDrawParametersFeatures ) );
69170       return *this;
69171     }
69172 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69173     PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69174     {
69175       pNext = pNext_;
69176       return *this;
69177     }
69178 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69179     PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
69180     {
69181       shaderDrawParameters = shaderDrawParameters_;
69182       return *this;
69183     }
69184 
69185 
operator VkPhysicalDeviceShaderDrawParametersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69186     operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT
69187     {
69188       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
69189     }
69190 
operator VkPhysicalDeviceShaderDrawParametersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69191     operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
69192     {
69193       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
69194     }
69195 
69196 
69197 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69198     auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const& ) const = default;
69199 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69200     bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69201     {
69202       return ( sType == rhs.sType )
69203           && ( pNext == rhs.pNext )
69204           && ( shaderDrawParameters == rhs.shaderDrawParameters );
69205     }
69206 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures69207     bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69208     {
69209       return !operator==( rhs );
69210     }
69211 #endif
69212 
69213 
69214 
69215   public:
69216     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
69217     void* pNext = {};
69218     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
69219 
69220   };
69221   static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" );
69222   static_assert( std::is_standard_layout<PhysicalDeviceShaderDrawParametersFeatures>::value, "struct wrapper is not a standard layout!" );
69223 
69224   template <>
69225   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
69226   {
69227     using Type = PhysicalDeviceShaderDrawParametersFeatures;
69228   };
69229   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
69230 
69231   struct PhysicalDeviceShaderFloat16Int8Features
69232   {
69233     static const bool allowDuplicate = false;
69234     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
69235 
69236 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69237     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}) VULKAN_HPP_NOEXCEPT
69238     : shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ )
69239     {}
69240 
69241     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69242 
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69243     PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
69244     {
69245       *this = rhs;
69246     }
69247 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69248 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69249     PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
69250     {
69251       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>( &rhs );
69252       return *this;
69253     }
69254 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69255     PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
69256     {
69257       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderFloat16Int8Features ) );
69258       return *this;
69259     }
69260 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69261     PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69262     {
69263       pNext = pNext_;
69264       return *this;
69265     }
69266 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69267     PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
69268     {
69269       shaderFloat16 = shaderFloat16_;
69270       return *this;
69271     }
69272 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69273     PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
69274     {
69275       shaderInt8 = shaderInt8_;
69276       return *this;
69277     }
69278 
69279 
operator VkPhysicalDeviceShaderFloat16Int8Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69280     operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT
69281     {
69282       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>( this );
69283     }
69284 
operator VkPhysicalDeviceShaderFloat16Int8Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69285     operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
69286     {
69287       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>( this );
69288     }
69289 
69290 
69291 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69292     auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const& ) const = default;
69293 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69294     bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69295     {
69296       return ( sType == rhs.sType )
69297           && ( pNext == rhs.pNext )
69298           && ( shaderFloat16 == rhs.shaderFloat16 )
69299           && ( shaderInt8 == rhs.shaderInt8 );
69300     }
69301 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features69302     bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69303     {
69304       return !operator==( rhs );
69305     }
69306 #endif
69307 
69308 
69309 
69310   public:
69311     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
69312     void* pNext = {};
69313     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
69314     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
69315 
69316   };
69317   static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" );
69318   static_assert( std::is_standard_layout<PhysicalDeviceShaderFloat16Int8Features>::value, "struct wrapper is not a standard layout!" );
69319 
69320   template <>
69321   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
69322   {
69323     using Type = PhysicalDeviceShaderFloat16Int8Features;
69324   };
69325   using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
69326   using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
69327 
69328   struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
69329   {
69330     static const bool allowDuplicate = false;
69331     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
69332 
69333 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69334     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
69335     : shaderImageInt64Atomics( shaderImageInt64Atomics_ ), sparseImageInt64Atomics( sparseImageInt64Atomics_ )
69336     {}
69337 
69338     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69339 
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69340     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69341     {
69342       *this = rhs;
69343     }
69344 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69345 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69346     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69347     {
69348       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs );
69349       return *this;
69350     }
69351 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69352     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69353     {
69354       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) );
69355       return *this;
69356     }
69357 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69358     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69359     {
69360       pNext = pNext_;
69361       return *this;
69362     }
69363 
setShaderImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69364     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69365     {
69366       shaderImageInt64Atomics = shaderImageInt64Atomics_;
69367       return *this;
69368     }
69369 
setSparseImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69370     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69371     {
69372       sparseImageInt64Atomics = sparseImageInt64Atomics_;
69373       return *this;
69374     }
69375 
69376 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69377     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
69378     {
69379       return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
69380     }
69381 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69382     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
69383     {
69384       return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
69385     }
69386 
69387 
69388 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69389     auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& ) const = default;
69390 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69391     bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69392     {
69393       return ( sType == rhs.sType )
69394           && ( pNext == rhs.pNext )
69395           && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics )
69396           && ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics );
69397     }
69398 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT69399     bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69400     {
69401       return !operator==( rhs );
69402     }
69403 #endif
69404 
69405 
69406 
69407   public:
69408     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
69409     void* pNext = {};
69410     VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {};
69411     VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {};
69412 
69413   };
69414   static_assert( sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) == sizeof( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT ), "struct and wrapper have different size!" );
69415   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
69416 
69417   template <>
69418   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
69419   {
69420     using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
69421   };
69422 
69423   struct PhysicalDeviceShaderImageFootprintFeaturesNV
69424   {
69425     static const bool allowDuplicate = false;
69426     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
69427 
69428 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69429     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {}) VULKAN_HPP_NOEXCEPT
69430     : imageFootprint( imageFootprint_ )
69431     {}
69432 
69433     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69434 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69435     PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69436     {
69437       *this = rhs;
69438     }
69439 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69440 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69441     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69442     {
69443       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs );
69444       return *this;
69445     }
69446 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69447     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69448     {
69449       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) );
69450       return *this;
69451     }
69452 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69453     PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69454     {
69455       pNext = pNext_;
69456       return *this;
69457     }
69458 
setImageFootprintVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69459     PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
69460     {
69461       imageFootprint = imageFootprint_;
69462       return *this;
69463     }
69464 
69465 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69466     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
69467     {
69468       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
69469     }
69470 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69471     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
69472     {
69473       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
69474     }
69475 
69476 
69477 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69478     auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const& ) const = default;
69479 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69480     bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69481     {
69482       return ( sType == rhs.sType )
69483           && ( pNext == rhs.pNext )
69484           && ( imageFootprint == rhs.imageFootprint );
69485     }
69486 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV69487     bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69488     {
69489       return !operator==( rhs );
69490     }
69491 #endif
69492 
69493 
69494 
69495   public:
69496     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
69497     void* pNext = {};
69498     VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
69499 
69500   };
69501   static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" );
69502   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageFootprintFeaturesNV>::value, "struct wrapper is not a standard layout!" );
69503 
69504   template <>
69505   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
69506   {
69507     using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
69508   };
69509 
69510   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
69511   {
69512     static const bool allowDuplicate = false;
69513     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
69514 
69515 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69516     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {}) VULKAN_HPP_NOEXCEPT
69517     : shaderIntegerFunctions2( shaderIntegerFunctions2_ )
69518     {}
69519 
69520     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69521 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69522     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
69523     {
69524       *this = rhs;
69525     }
69526 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69527 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69528     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
69529     {
69530       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs );
69531       return *this;
69532     }
69533 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69534     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
69535     {
69536       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) );
69537       return *this;
69538     }
69539 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69540     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69541     {
69542       pNext = pNext_;
69543       return *this;
69544     }
69545 
setShaderIntegerFunctions2VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69546     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
69547     {
69548       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
69549       return *this;
69550     }
69551 
69552 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69553     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT
69554     {
69555       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
69556     }
69557 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69558     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
69559     {
69560       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
69561     }
69562 
69563 
69564 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69565     auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& ) const = default;
69566 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69567     bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
69568     {
69569       return ( sType == rhs.sType )
69570           && ( pNext == rhs.pNext )
69571           && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
69572     }
69573 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL69574     bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
69575     {
69576       return !operator==( rhs );
69577     }
69578 #endif
69579 
69580 
69581 
69582   public:
69583     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
69584     void* pNext = {};
69585     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
69586 
69587   };
69588   static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" );
69589   static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>::value, "struct wrapper is not a standard layout!" );
69590 
69591   template <>
69592   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
69593   {
69594     using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
69595   };
69596 
69597   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
69598   {
69599     static const bool allowDuplicate = false;
69600     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
69601 
69602 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69603     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {}) VULKAN_HPP_NOEXCEPT
69604     : shaderSMBuiltins( shaderSMBuiltins_ )
69605     {}
69606 
69607     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69608 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69609     PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69610     {
69611       *this = rhs;
69612     }
69613 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69614 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69615     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69616     {
69617       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs );
69618       return *this;
69619     }
69620 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69621     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69622     {
69623       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) );
69624       return *this;
69625     }
69626 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69627     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69628     {
69629       pNext = pNext_;
69630       return *this;
69631     }
69632 
setShaderSMBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69633     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
69634     {
69635       shaderSMBuiltins = shaderSMBuiltins_;
69636       return *this;
69637     }
69638 
69639 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69640     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
69641     {
69642       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
69643     }
69644 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69645     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
69646     {
69647       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
69648     }
69649 
69650 
69651 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69652     auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& ) const = default;
69653 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69654     bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69655     {
69656       return ( sType == rhs.sType )
69657           && ( pNext == rhs.pNext )
69658           && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
69659     }
69660 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV69661     bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69662     {
69663       return !operator==( rhs );
69664     }
69665 #endif
69666 
69667 
69668 
69669   public:
69670     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
69671     void* pNext = {};
69672     VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
69673 
69674   };
69675   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" );
69676   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
69677 
69678   template <>
69679   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
69680   {
69681     using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
69682   };
69683 
69684   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
69685   {
69686     static const bool allowDuplicate = false;
69687     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
69688 
69689 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69690     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV(uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}) VULKAN_HPP_NOEXCEPT
69691     : shaderSMCount( shaderSMCount_ ), shaderWarpsPerSM( shaderWarpsPerSM_ )
69692     {}
69693 
69694     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69695 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69696     PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69697     {
69698       *this = rhs;
69699     }
69700 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69701 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69702     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69703     {
69704       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs );
69705       return *this;
69706     }
69707 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69708     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69709     {
69710       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) );
69711       return *this;
69712     }
69713 
69714 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69715     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
69716     {
69717       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
69718     }
69719 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69720     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
69721     {
69722       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
69723     }
69724 
69725 
69726 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69727     auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& ) const = default;
69728 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69729     bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69730     {
69731       return ( sType == rhs.sType )
69732           && ( pNext == rhs.pNext )
69733           && ( shaderSMCount == rhs.shaderSMCount )
69734           && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
69735     }
69736 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV69737     bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69738     {
69739       return !operator==( rhs );
69740     }
69741 #endif
69742 
69743 
69744 
69745   public:
69746     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
69747     void* pNext = {};
69748     uint32_t shaderSMCount = {};
69749     uint32_t shaderWarpsPerSM = {};
69750 
69751   };
69752   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" );
69753   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
69754 
69755   template <>
69756   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
69757   {
69758     using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
69759   };
69760 
69761   struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
69762   {
69763     static const bool allowDuplicate = false;
69764     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
69765 
69766 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69767     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}) VULKAN_HPP_NOEXCEPT
69768     : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
69769     {}
69770 
69771     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69772 
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69773     PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69774     {
69775       *this = rhs;
69776     }
69777 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69778 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69779     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69780     {
69781       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs );
69782       return *this;
69783     }
69784 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69785     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69786     {
69787       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) );
69788       return *this;
69789     }
69790 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69791     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69792     {
69793       pNext = pNext_;
69794       return *this;
69795     }
69796 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69797     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
69798     {
69799       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
69800       return *this;
69801     }
69802 
69803 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69804     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT
69805     {
69806       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
69807     }
69808 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69809     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
69810     {
69811       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
69812     }
69813 
69814 
69815 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69816     auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& ) const = default;
69817 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69818     bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69819     {
69820       return ( sType == rhs.sType )
69821           && ( pNext == rhs.pNext )
69822           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
69823     }
69824 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures69825     bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69826     {
69827       return !operator==( rhs );
69828     }
69829 #endif
69830 
69831 
69832 
69833   public:
69834     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
69835     void* pNext = {};
69836     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
69837 
69838   };
69839   static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" );
69840   static_assert( std::is_standard_layout<PhysicalDeviceShaderSubgroupExtendedTypesFeatures>::value, "struct wrapper is not a standard layout!" );
69841 
69842   template <>
69843   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
69844   {
69845     using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
69846   };
69847   using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
69848 
69849   struct PhysicalDeviceShadingRateImageFeaturesNV
69850   {
69851     static const bool allowDuplicate = false;
69852     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
69853 
69854 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69855     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {}) VULKAN_HPP_NOEXCEPT
69856     : shadingRateImage( shadingRateImage_ ), shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
69857     {}
69858 
69859     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69860 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69861     PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69862     {
69863       *this = rhs;
69864     }
69865 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69866 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69867     PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69868     {
69869       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs );
69870       return *this;
69871     }
69872 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69873     PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69874     {
69875       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) );
69876       return *this;
69877     }
69878 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69879     PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69880     {
69881       pNext = pNext_;
69882       return *this;
69883     }
69884 
setShadingRateImageVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69885     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
69886     {
69887       shadingRateImage = shadingRateImage_;
69888       return *this;
69889     }
69890 
setShadingRateCoarseSampleOrderVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69891     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
69892     {
69893       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
69894       return *this;
69895     }
69896 
69897 
operator VkPhysicalDeviceShadingRateImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69898     operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
69899     {
69900       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
69901     }
69902 
operator VkPhysicalDeviceShadingRateImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69903     operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
69904     {
69905       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
69906     }
69907 
69908 
69909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69910     auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const& ) const = default;
69911 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69912     bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69913     {
69914       return ( sType == rhs.sType )
69915           && ( pNext == rhs.pNext )
69916           && ( shadingRateImage == rhs.shadingRateImage )
69917           && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
69918     }
69919 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV69920     bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69921     {
69922       return !operator==( rhs );
69923     }
69924 #endif
69925 
69926 
69927 
69928   public:
69929     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
69930     void* pNext = {};
69931     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
69932     VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
69933 
69934   };
69935   static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" );
69936   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
69937 
69938   template <>
69939   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
69940   {
69941     using Type = PhysicalDeviceShadingRateImageFeaturesNV;
69942   };
69943 
69944   struct PhysicalDeviceShadingRateImagePropertiesNV
69945   {
69946     static const bool allowDuplicate = false;
69947     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
69948 
69949 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69950     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV(VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, uint32_t shadingRatePaletteSize_ = {}, uint32_t shadingRateMaxCoarseSamples_ = {}) VULKAN_HPP_NOEXCEPT
69951     : shadingRateTexelSize( shadingRateTexelSize_ ), shadingRatePaletteSize( shadingRatePaletteSize_ ), shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
69952     {}
69953 
69954     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69955 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69956     PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69957     {
69958       *this = rhs;
69959     }
69960 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69961 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69962     PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69963     {
69964       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs );
69965       return *this;
69966     }
69967 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69968     PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
69969     {
69970       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) );
69971       return *this;
69972     }
69973 
69974 
operator VkPhysicalDeviceShadingRateImagePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69975     operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT
69976     {
69977       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
69978     }
69979 
operator VkPhysicalDeviceShadingRateImagePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69980     operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
69981     {
69982       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
69983     }
69984 
69985 
69986 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69987     auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const& ) const = default;
69988 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69989     bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69990     {
69991       return ( sType == rhs.sType )
69992           && ( pNext == rhs.pNext )
69993           && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
69994           && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
69995           && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
69996     }
69997 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV69998     bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
69999     {
70000       return !operator==( rhs );
70001     }
70002 #endif
70003 
70004 
70005 
70006   public:
70007     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
70008     void* pNext = {};
70009     VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
70010     uint32_t shadingRatePaletteSize = {};
70011     uint32_t shadingRateMaxCoarseSamples = {};
70012 
70013   };
70014   static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" );
70015   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImagePropertiesNV>::value, "struct wrapper is not a standard layout!" );
70016 
70017   template <>
70018   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
70019   {
70020     using Type = PhysicalDeviceShadingRateImagePropertiesNV;
70021   };
70022 
70023   struct PhysicalDeviceSubgroupProperties
70024   {
70025     static const bool allowDuplicate = false;
70026     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
70027 
70028 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70029     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
70030     : subgroupSize( subgroupSize_ ), supportedStages( supportedStages_ ), supportedOperations( supportedOperations_ ), quadOperationsInAllStages( quadOperationsInAllStages_ )
70031     {}
70032 
70033     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70034 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70035     PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70036     {
70037       *this = rhs;
70038     }
70039 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70040 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70041     PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70042     {
70043       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>( &rhs );
70044       return *this;
70045     }
70046 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70047     PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70048     {
70049       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupProperties ) );
70050       return *this;
70051     }
70052 
70053 
operator VkPhysicalDeviceSubgroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70054     operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT
70055     {
70056       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
70057     }
70058 
operator VkPhysicalDeviceSubgroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70059     operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
70060     {
70061       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
70062     }
70063 
70064 
70065 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70066     auto operator<=>( PhysicalDeviceSubgroupProperties const& ) const = default;
70067 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70068     bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70069     {
70070       return ( sType == rhs.sType )
70071           && ( pNext == rhs.pNext )
70072           && ( subgroupSize == rhs.subgroupSize )
70073           && ( supportedStages == rhs.supportedStages )
70074           && ( supportedOperations == rhs.supportedOperations )
70075           && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
70076     }
70077 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties70078     bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70079     {
70080       return !operator==( rhs );
70081     }
70082 #endif
70083 
70084 
70085 
70086   public:
70087     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
70088     void* pNext = {};
70089     uint32_t subgroupSize = {};
70090     VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
70091     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
70092     VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
70093 
70094   };
70095   static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" );
70096   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupProperties>::value, "struct wrapper is not a standard layout!" );
70097 
70098   template <>
70099   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
70100   {
70101     using Type = PhysicalDeviceSubgroupProperties;
70102   };
70103 
70104   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT
70105   {
70106     static const bool allowDuplicate = false;
70107     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
70108 
70109 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70110     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}) VULKAN_HPP_NOEXCEPT
70111     : subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ )
70112     {}
70113 
70114     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70115 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70116     PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70117     {
70118       *this = rhs;
70119     }
70120 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70121 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70122     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70123     {
70124       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT const *>( &rhs );
70125       return *this;
70126     }
70127 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70128     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70129     {
70130       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) );
70131       return *this;
70132     }
70133 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70134     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70135     {
70136       pNext = pNext_;
70137       return *this;
70138     }
70139 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70140     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
70141     {
70142       subgroupSizeControl = subgroupSizeControl_;
70143       return *this;
70144     }
70145 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70146     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
70147     {
70148       computeFullSubgroups = computeFullSubgroups_;
70149       return *this;
70150     }
70151 
70152 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70153     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70154     {
70155       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
70156     }
70157 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70158     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70159     {
70160       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
70161     }
70162 
70163 
70164 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70165     auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& ) const = default;
70166 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70167     bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70168     {
70169       return ( sType == rhs.sType )
70170           && ( pNext == rhs.pNext )
70171           && ( subgroupSizeControl == rhs.subgroupSizeControl )
70172           && ( computeFullSubgroups == rhs.computeFullSubgroups );
70173     }
70174 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT70175     bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70176     {
70177       return !operator==( rhs );
70178     }
70179 #endif
70180 
70181 
70182 
70183   public:
70184     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
70185     void* pNext = {};
70186     VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
70187     VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
70188 
70189   };
70190   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" );
70191   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70192 
70193   template <>
70194   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT>
70195   {
70196     using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT;
70197   };
70198 
70199   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT
70200   {
70201     static const bool allowDuplicate = false;
70202     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
70203 
70204 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70205     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}) VULKAN_HPP_NOEXCEPT
70206     : minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
70207     {}
70208 
70209     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70210 
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70211     PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70212     {
70213       *this = rhs;
70214     }
70215 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70216 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70217     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70218     {
70219       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT const *>( &rhs );
70220       return *this;
70221     }
70222 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70223     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70224     {
70225       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) );
70226       return *this;
70227     }
70228 
70229 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70230     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
70231     {
70232       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
70233     }
70234 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70235     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT
70236     {
70237       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
70238     }
70239 
70240 
70241 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70242     auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& ) const = default;
70243 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70244     bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70245     {
70246       return ( sType == rhs.sType )
70247           && ( pNext == rhs.pNext )
70248           && ( minSubgroupSize == rhs.minSubgroupSize )
70249           && ( maxSubgroupSize == rhs.maxSubgroupSize )
70250           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
70251           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
70252     }
70253 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT70254     bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70255     {
70256       return !operator==( rhs );
70257     }
70258 #endif
70259 
70260 
70261 
70262   public:
70263     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
70264     void* pNext = {};
70265     uint32_t minSubgroupSize = {};
70266     uint32_t maxSubgroupSize = {};
70267     uint32_t maxComputeWorkgroupSubgroups = {};
70268     VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
70269 
70270   };
70271   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" );
70272   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
70273 
70274   template <>
70275   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT>
70276   {
70277     using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT;
70278   };
70279 
70280   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
70281   {
70282     static const bool allowDuplicate = false;
70283     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
70284 
70285 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70286     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {}) VULKAN_HPP_NOEXCEPT
70287     : texelBufferAlignment( texelBufferAlignment_ )
70288     {}
70289 
70290     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70291 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70292     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70293     {
70294       *this = rhs;
70295     }
70296 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70297 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70298     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70299     {
70300       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs );
70301       return *this;
70302     }
70303 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70304     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70305     {
70306       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) );
70307       return *this;
70308     }
70309 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70310     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70311     {
70312       pNext = pNext_;
70313       return *this;
70314     }
70315 
setTexelBufferAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70316     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
70317     {
70318       texelBufferAlignment = texelBufferAlignment_;
70319       return *this;
70320     }
70321 
70322 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70323     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70324     {
70325       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
70326     }
70327 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70328     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70329     {
70330       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
70331     }
70332 
70333 
70334 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70335     auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& ) const = default;
70336 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70337     bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70338     {
70339       return ( sType == rhs.sType )
70340           && ( pNext == rhs.pNext )
70341           && ( texelBufferAlignment == rhs.texelBufferAlignment );
70342     }
70343 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT70344     bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70345     {
70346       return !operator==( rhs );
70347     }
70348 #endif
70349 
70350 
70351 
70352   public:
70353     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
70354     void* pNext = {};
70355     VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
70356 
70357   };
70358   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" );
70359   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70360 
70361   template <>
70362   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
70363   {
70364     using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
70365   };
70366 
70367   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
70368   {
70369     static const bool allowDuplicate = false;
70370     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
70371 
70372 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70373     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
70374     : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
70375     {}
70376 
70377     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70378 
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70379     PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70380     {
70381       *this = rhs;
70382     }
70383 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70384 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70385     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70386     {
70387       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT const *>( &rhs );
70388       return *this;
70389     }
70390 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70391     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70392     {
70393       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) );
70394       return *this;
70395     }
70396 
70397 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70398     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
70399     {
70400       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
70401     }
70402 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70403     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT
70404     {
70405       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
70406     }
70407 
70408 
70409 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70410     auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& ) const = default;
70411 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70412     bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70413     {
70414       return ( sType == rhs.sType )
70415           && ( pNext == rhs.pNext )
70416           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
70417           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
70418           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
70419           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
70420     }
70421 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT70422     bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70423     {
70424       return !operator==( rhs );
70425     }
70426 #endif
70427 
70428 
70429 
70430   public:
70431     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
70432     void* pNext = {};
70433     VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
70434     VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
70435     VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
70436     VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
70437 
70438   };
70439   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" );
70440   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
70441 
70442   template <>
70443   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT>
70444   {
70445     using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
70446   };
70447 
70448   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
70449   {
70450     static const bool allowDuplicate = false;
70451     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
70452 
70453 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70454     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}) VULKAN_HPP_NOEXCEPT
70455     : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
70456     {}
70457 
70458     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70459 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70460     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70461     {
70462       *this = rhs;
70463     }
70464 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70465 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70466     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70467     {
70468       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const *>( &rhs );
70469       return *this;
70470     }
70471 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70472     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70473     {
70474       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) );
70475       return *this;
70476     }
70477 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70478     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70479     {
70480       pNext = pNext_;
70481       return *this;
70482     }
70483 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70484     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
70485     {
70486       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
70487       return *this;
70488     }
70489 
70490 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70491     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70492     {
70493       return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
70494     }
70495 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70496     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70497     {
70498       return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
70499     }
70500 
70501 
70502 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70503     auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& ) const = default;
70504 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70505     bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70506     {
70507       return ( sType == rhs.sType )
70508           && ( pNext == rhs.pNext )
70509           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
70510     }
70511 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT70512     bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70513     {
70514       return !operator==( rhs );
70515     }
70516 #endif
70517 
70518 
70519 
70520   public:
70521     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
70522     void* pNext = {};
70523     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
70524 
70525   };
70526   static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" );
70527   static_assert( std::is_standard_layout<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70528 
70529   template <>
70530   struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT>
70531   {
70532     using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
70533   };
70534 
70535   struct PhysicalDeviceTimelineSemaphoreFeatures
70536   {
70537     static const bool allowDuplicate = false;
70538     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
70539 
70540 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70541     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures(VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}) VULKAN_HPP_NOEXCEPT
70542     : timelineSemaphore( timelineSemaphore_ )
70543     {}
70544 
70545     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70546 
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70547     PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70548     {
70549       *this = rhs;
70550     }
70551 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70552 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70553     PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70554     {
70555       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs );
70556       return *this;
70557     }
70558 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70559     PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70560     {
70561       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) );
70562       return *this;
70563     }
70564 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70565     PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70566     {
70567       pNext = pNext_;
70568       return *this;
70569     }
70570 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70571     PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
70572     {
70573       timelineSemaphore = timelineSemaphore_;
70574       return *this;
70575     }
70576 
70577 
operator VkPhysicalDeviceTimelineSemaphoreFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70578     operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT
70579     {
70580       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
70581     }
70582 
operator VkPhysicalDeviceTimelineSemaphoreFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70583     operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
70584     {
70585       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
70586     }
70587 
70588 
70589 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70590     auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const& ) const = default;
70591 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70592     bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70593     {
70594       return ( sType == rhs.sType )
70595           && ( pNext == rhs.pNext )
70596           && ( timelineSemaphore == rhs.timelineSemaphore );
70597     }
70598 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures70599     bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70600     {
70601       return !operator==( rhs );
70602     }
70603 #endif
70604 
70605 
70606 
70607   public:
70608     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
70609     void* pNext = {};
70610     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
70611 
70612   };
70613   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" );
70614   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreFeatures>::value, "struct wrapper is not a standard layout!" );
70615 
70616   template <>
70617   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
70618   {
70619     using Type = PhysicalDeviceTimelineSemaphoreFeatures;
70620   };
70621   using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
70622 
70623   struct PhysicalDeviceTimelineSemaphoreProperties
70624   {
70625     static const bool allowDuplicate = false;
70626     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
70627 
70628 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70629     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties(uint64_t maxTimelineSemaphoreValueDifference_ = {}) VULKAN_HPP_NOEXCEPT
70630     : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
70631     {}
70632 
70633     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70634 
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70635     PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70636     {
70637       *this = rhs;
70638     }
70639 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70640 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70641     PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70642     {
70643       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs );
70644       return *this;
70645     }
70646 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70647     PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70648     {
70649       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreProperties ) );
70650       return *this;
70651     }
70652 
70653 
operator VkPhysicalDeviceTimelineSemaphoreProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70654     operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
70655     {
70656       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
70657     }
70658 
operator VkPhysicalDeviceTimelineSemaphoreProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70659     operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
70660     {
70661       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
70662     }
70663 
70664 
70665 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70666     auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const& ) const = default;
70667 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70668     bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70669     {
70670       return ( sType == rhs.sType )
70671           && ( pNext == rhs.pNext )
70672           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
70673     }
70674 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties70675     bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
70676     {
70677       return !operator==( rhs );
70678     }
70679 #endif
70680 
70681 
70682 
70683   public:
70684     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
70685     void* pNext = {};
70686     uint64_t maxTimelineSemaphoreValueDifference = {};
70687 
70688   };
70689   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" );
70690   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
70691 
70692   template <>
70693   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
70694   {
70695     using Type = PhysicalDeviceTimelineSemaphoreProperties;
70696   };
70697   using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
70698 
70699   struct PhysicalDeviceTransformFeedbackFeaturesEXT
70700   {
70701     static const bool allowDuplicate = false;
70702     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
70703 
70704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70705     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {}) VULKAN_HPP_NOEXCEPT
70706     : transformFeedback( transformFeedback_ ), geometryStreams( geometryStreams_ )
70707     {}
70708 
70709     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70710 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70711     PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70712     {
70713       *this = rhs;
70714     }
70715 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70716 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70717     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70718     {
70719       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs );
70720       return *this;
70721     }
70722 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70723     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70724     {
70725       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) );
70726       return *this;
70727     }
70728 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70729     PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70730     {
70731       pNext = pNext_;
70732       return *this;
70733     }
70734 
setTransformFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70735     PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
70736     {
70737       transformFeedback = transformFeedback_;
70738       return *this;
70739     }
70740 
setGeometryStreamsVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70741     PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
70742     {
70743       geometryStreams = geometryStreams_;
70744       return *this;
70745     }
70746 
70747 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70748     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70749     {
70750       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
70751     }
70752 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70753     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70754     {
70755       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
70756     }
70757 
70758 
70759 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70760     auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const& ) const = default;
70761 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70762     bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70763     {
70764       return ( sType == rhs.sType )
70765           && ( pNext == rhs.pNext )
70766           && ( transformFeedback == rhs.transformFeedback )
70767           && ( geometryStreams == rhs.geometryStreams );
70768     }
70769 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT70770     bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70771     {
70772       return !operator==( rhs );
70773     }
70774 #endif
70775 
70776 
70777 
70778   public:
70779     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
70780     void* pNext = {};
70781     VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
70782     VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
70783 
70784   };
70785   static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" );
70786   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70787 
70788   template <>
70789   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
70790   {
70791     using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
70792   };
70793 
70794   struct PhysicalDeviceTransformFeedbackPropertiesEXT
70795   {
70796     static const bool allowDuplicate = false;
70797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
70798 
70799 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70800     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
70801     : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ), maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ), maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ), maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ), maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ), maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ), transformFeedbackQueries( transformFeedbackQueries_ ), transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ), transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ), transformFeedbackDraw( transformFeedbackDraw_ )
70802     {}
70803 
70804     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70805 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70806     PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70807     {
70808       *this = rhs;
70809     }
70810 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70811 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70812     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70813     {
70814       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs );
70815       return *this;
70816     }
70817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70818     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70819     {
70820       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) );
70821       return *this;
70822     }
70823 
70824 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70825     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
70826     {
70827       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
70828     }
70829 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70830     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
70831     {
70832       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
70833     }
70834 
70835 
70836 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70837     auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const& ) const = default;
70838 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70839     bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70840     {
70841       return ( sType == rhs.sType )
70842           && ( pNext == rhs.pNext )
70843           && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
70844           && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
70845           && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
70846           && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
70847           && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
70848           && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
70849           && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
70850           && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
70851           && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
70852           && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
70853     }
70854 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT70855     bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70856     {
70857       return !operator==( rhs );
70858     }
70859 #endif
70860 
70861 
70862 
70863   public:
70864     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
70865     void* pNext = {};
70866     uint32_t maxTransformFeedbackStreams = {};
70867     uint32_t maxTransformFeedbackBuffers = {};
70868     VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
70869     uint32_t maxTransformFeedbackStreamDataSize = {};
70870     uint32_t maxTransformFeedbackBufferDataSize = {};
70871     uint32_t maxTransformFeedbackBufferDataStride = {};
70872     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
70873     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
70874     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
70875     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
70876 
70877   };
70878   static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" );
70879   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
70880 
70881   template <>
70882   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
70883   {
70884     using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
70885   };
70886 
70887   struct PhysicalDeviceUniformBufferStandardLayoutFeatures
70888   {
70889     static const bool allowDuplicate = false;
70890     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
70891 
70892 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70893     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}) VULKAN_HPP_NOEXCEPT
70894     : uniformBufferStandardLayout( uniformBufferStandardLayout_ )
70895     {}
70896 
70897     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70898 
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70899     PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70900     {
70901       *this = rhs;
70902     }
70903 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70904 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70905     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70906     {
70907       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs );
70908       return *this;
70909     }
70910 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70911     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70912     {
70913       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) );
70914       return *this;
70915     }
70916 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70917     PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70918     {
70919       pNext = pNext_;
70920       return *this;
70921     }
70922 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70923     PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
70924     {
70925       uniformBufferStandardLayout = uniformBufferStandardLayout_;
70926       return *this;
70927     }
70928 
70929 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70930     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
70931     {
70932       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
70933     }
70934 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70935     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
70936     {
70937       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
70938     }
70939 
70940 
70941 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70942     auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const& ) const = default;
70943 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70944     bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70945     {
70946       return ( sType == rhs.sType )
70947           && ( pNext == rhs.pNext )
70948           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
70949     }
70950 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures70951     bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70952     {
70953       return !operator==( rhs );
70954     }
70955 #endif
70956 
70957 
70958 
70959   public:
70960     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
70961     void* pNext = {};
70962     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
70963 
70964   };
70965   static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" );
70966   static_assert( std::is_standard_layout<PhysicalDeviceUniformBufferStandardLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
70967 
70968   template <>
70969   struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
70970   {
70971     using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
70972   };
70973   using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
70974 
70975   struct PhysicalDeviceVariablePointersFeatures
70976   {
70977     static const bool allowDuplicate = false;
70978     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
70979 
70980 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures70981     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures(VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}) VULKAN_HPP_NOEXCEPT
70982     : variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ )
70983     {}
70984 
70985     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70986 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures70987     PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70988     {
70989       *this = rhs;
70990     }
70991 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70992 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures70993     PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70994     {
70995       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>( &rhs );
70996       return *this;
70997     }
70998 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures70999     PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71000     {
71001       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVariablePointersFeatures ) );
71002       return *this;
71003     }
71004 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71005     PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71006     {
71007       pNext = pNext_;
71008       return *this;
71009     }
71010 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71011     PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
71012     {
71013       variablePointersStorageBuffer = variablePointersStorageBuffer_;
71014       return *this;
71015     }
71016 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71017     PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
71018     {
71019       variablePointers = variablePointers_;
71020       return *this;
71021     }
71022 
71023 
operator VkPhysicalDeviceVariablePointersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71024     operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT
71025     {
71026       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
71027     }
71028 
operator VkPhysicalDeviceVariablePointersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71029     operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
71030     {
71031       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
71032     }
71033 
71034 
71035 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71036     auto operator<=>( PhysicalDeviceVariablePointersFeatures const& ) const = default;
71037 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71038     bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71039     {
71040       return ( sType == rhs.sType )
71041           && ( pNext == rhs.pNext )
71042           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
71043           && ( variablePointers == rhs.variablePointers );
71044     }
71045 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures71046     bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71047     {
71048       return !operator==( rhs );
71049     }
71050 #endif
71051 
71052 
71053 
71054   public:
71055     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
71056     void* pNext = {};
71057     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
71058     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
71059 
71060   };
71061   static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" );
71062   static_assert( std::is_standard_layout<PhysicalDeviceVariablePointersFeatures>::value, "struct wrapper is not a standard layout!" );
71063 
71064   template <>
71065   struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
71066   {
71067     using Type = PhysicalDeviceVariablePointersFeatures;
71068   };
71069   using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
71070   using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
71071   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
71072 
71073   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
71074   {
71075     static const bool allowDuplicate = false;
71076     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
71077 
71078 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71079     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {}) VULKAN_HPP_NOEXCEPT
71080     : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ), vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
71081     {}
71082 
71083     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71084 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71085     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71086     {
71087       *this = rhs;
71088     }
71089 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71090 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71091     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71092     {
71093       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
71094       return *this;
71095     }
71096 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71097     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71098     {
71099       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) );
71100       return *this;
71101     }
71102 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71103     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71104     {
71105       pNext = pNext_;
71106       return *this;
71107     }
71108 
setVertexAttributeInstanceRateDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71109     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
71110     {
71111       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
71112       return *this;
71113     }
71114 
setVertexAttributeInstanceRateZeroDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71115     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
71116     {
71117       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
71118       return *this;
71119     }
71120 
71121 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71122     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71123     {
71124       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
71125     }
71126 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71127     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71128     {
71129       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
71130     }
71131 
71132 
71133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71134     auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& ) const = default;
71135 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71136     bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71137     {
71138       return ( sType == rhs.sType )
71139           && ( pNext == rhs.pNext )
71140           && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
71141           && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
71142     }
71143 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT71144     bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71145     {
71146       return !operator==( rhs );
71147     }
71148 #endif
71149 
71150 
71151 
71152   public:
71153     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
71154     void* pNext = {};
71155     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
71156     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
71157 
71158   };
71159   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" );
71160   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71161 
71162   template <>
71163   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
71164   {
71165     using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
71166   };
71167 
71168   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
71169   {
71170     static const bool allowDuplicate = false;
71171     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
71172 
71173 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71174     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t maxVertexAttribDivisor_ = {}) VULKAN_HPP_NOEXCEPT
71175     : maxVertexAttribDivisor( maxVertexAttribDivisor_ )
71176     {}
71177 
71178     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71179 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71180     PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71181     {
71182       *this = rhs;
71183     }
71184 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71185 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71186     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71187     {
71188       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs );
71189       return *this;
71190     }
71191 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71192     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71193     {
71194       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) );
71195       return *this;
71196     }
71197 
71198 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71199     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71200     {
71201       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
71202     }
71203 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71204     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71205     {
71206       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
71207     }
71208 
71209 
71210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71211     auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& ) const = default;
71212 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71213     bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71214     {
71215       return ( sType == rhs.sType )
71216           && ( pNext == rhs.pNext )
71217           && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
71218     }
71219 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT71220     bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71221     {
71222       return !operator==( rhs );
71223     }
71224 #endif
71225 
71226 
71227 
71228   public:
71229     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
71230     void* pNext = {};
71231     uint32_t maxVertexAttribDivisor = {};
71232 
71233   };
71234   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
71235   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71236 
71237   template <>
71238   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
71239   {
71240     using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
71241   };
71242 
71243   struct PhysicalDeviceVulkan11Features
71244   {
71245     static const bool allowDuplicate = false;
71246     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
71247 
71248 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71249     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
71250     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ), protectedMemory( protectedMemory_ ), samplerYcbcrConversion( samplerYcbcrConversion_ ), shaderDrawParameters( shaderDrawParameters_ )
71251     {}
71252 
71253     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71254 
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71255     PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
71256     {
71257       *this = rhs;
71258     }
71259 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71260 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71261     PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
71262     {
71263       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>( &rhs );
71264       return *this;
71265     }
71266 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71267     PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
71268     {
71269       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan11Features ) );
71270       return *this;
71271     }
71272 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71273     PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71274     {
71275       pNext = pNext_;
71276       return *this;
71277     }
71278 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71279     PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
71280     {
71281       storageBuffer16BitAccess = storageBuffer16BitAccess_;
71282       return *this;
71283     }
71284 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71285     PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
71286     {
71287       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
71288       return *this;
71289     }
71290 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71291     PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
71292     {
71293       storagePushConstant16 = storagePushConstant16_;
71294       return *this;
71295     }
71296 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71297     PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
71298     {
71299       storageInputOutput16 = storageInputOutput16_;
71300       return *this;
71301     }
71302 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71303     PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
71304     {
71305       multiview = multiview_;
71306       return *this;
71307     }
71308 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71309     PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
71310     {
71311       multiviewGeometryShader = multiviewGeometryShader_;
71312       return *this;
71313     }
71314 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71315     PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
71316     {
71317       multiviewTessellationShader = multiviewTessellationShader_;
71318       return *this;
71319     }
71320 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71321     PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
71322     {
71323       variablePointersStorageBuffer = variablePointersStorageBuffer_;
71324       return *this;
71325     }
71326 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71327     PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
71328     {
71329       variablePointers = variablePointers_;
71330       return *this;
71331     }
71332 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71333     PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
71334     {
71335       protectedMemory = protectedMemory_;
71336       return *this;
71337     }
71338 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71339     PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
71340     {
71341       samplerYcbcrConversion = samplerYcbcrConversion_;
71342       return *this;
71343     }
71344 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71345     PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
71346     {
71347       shaderDrawParameters = shaderDrawParameters_;
71348       return *this;
71349     }
71350 
71351 
operator VkPhysicalDeviceVulkan11Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71352     operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT
71353     {
71354       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>( this );
71355     }
71356 
operator VkPhysicalDeviceVulkan11Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71357     operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
71358     {
71359       return *reinterpret_cast<VkPhysicalDeviceVulkan11Features*>( this );
71360     }
71361 
71362 
71363 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71364     auto operator<=>( PhysicalDeviceVulkan11Features const& ) const = default;
71365 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71366     bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
71367     {
71368       return ( sType == rhs.sType )
71369           && ( pNext == rhs.pNext )
71370           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
71371           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
71372           && ( storagePushConstant16 == rhs.storagePushConstant16 )
71373           && ( storageInputOutput16 == rhs.storageInputOutput16 )
71374           && ( multiview == rhs.multiview )
71375           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
71376           && ( multiviewTessellationShader == rhs.multiviewTessellationShader )
71377           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
71378           && ( variablePointers == rhs.variablePointers )
71379           && ( protectedMemory == rhs.protectedMemory )
71380           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion )
71381           && ( shaderDrawParameters == rhs.shaderDrawParameters );
71382     }
71383 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features71384     bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
71385     {
71386       return !operator==( rhs );
71387     }
71388 #endif
71389 
71390 
71391 
71392   public:
71393     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
71394     void* pNext = {};
71395     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
71396     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
71397     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
71398     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
71399     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
71400     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
71401     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
71402     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
71403     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
71404     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
71405     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
71406     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
71407 
71408   };
71409   static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" );
71410   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Features>::value, "struct wrapper is not a standard layout!" );
71411 
71412   template <>
71413   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
71414   {
71415     using Type = PhysicalDeviceVulkan11Features;
71416   };
71417 
71418   struct PhysicalDeviceVulkan11Properties
71419   {
71420     static const bool allowDuplicate = false;
71421     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
71422 
71423 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71424     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
71425     : 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_ )
71426     {}
71427 
71428     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71429 
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71430     PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
71431     {
71432       *this = rhs;
71433     }
71434 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71435 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71436     PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
71437     {
71438       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>( &rhs );
71439       return *this;
71440     }
71441 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71442     PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
71443     {
71444       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan11Properties ) );
71445       return *this;
71446     }
71447 
71448 
operator VkPhysicalDeviceVulkan11Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71449     operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT
71450     {
71451       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>( this );
71452     }
71453 
operator VkPhysicalDeviceVulkan11Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71454     operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
71455     {
71456       return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>( this );
71457     }
71458 
71459 
71460 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71461     auto operator<=>( PhysicalDeviceVulkan11Properties const& ) const = default;
71462 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71463     bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
71464     {
71465       return ( sType == rhs.sType )
71466           && ( pNext == rhs.pNext )
71467           && ( deviceUUID == rhs.deviceUUID )
71468           && ( driverUUID == rhs.driverUUID )
71469           && ( deviceLUID == rhs.deviceLUID )
71470           && ( deviceNodeMask == rhs.deviceNodeMask )
71471           && ( deviceLUIDValid == rhs.deviceLUIDValid )
71472           && ( subgroupSize == rhs.subgroupSize )
71473           && ( subgroupSupportedStages == rhs.subgroupSupportedStages )
71474           && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations )
71475           && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages )
71476           && ( pointClippingBehavior == rhs.pointClippingBehavior )
71477           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
71478           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex )
71479           && ( protectedNoFault == rhs.protectedNoFault )
71480           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
71481           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
71482     }
71483 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties71484     bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
71485     {
71486       return !operator==( rhs );
71487     }
71488 #endif
71489 
71490 
71491 
71492   public:
71493     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
71494     void* pNext = {};
71495     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
71496     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
71497     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
71498     uint32_t deviceNodeMask = {};
71499     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
71500     uint32_t subgroupSize = {};
71501     VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
71502     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
71503     VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
71504     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
71505     uint32_t maxMultiviewViewCount = {};
71506     uint32_t maxMultiviewInstanceIndex = {};
71507     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
71508     uint32_t maxPerSetDescriptors = {};
71509     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
71510 
71511   };
71512   static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" );
71513   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Properties>::value, "struct wrapper is not a standard layout!" );
71514 
71515   template <>
71516   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
71517   {
71518     using Type = PhysicalDeviceVulkan11Properties;
71519   };
71520 
71521   struct PhysicalDeviceVulkan12Features
71522   {
71523     static const bool allowDuplicate = false;
71524     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
71525 
71526 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71527     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
71528     : 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_ )
71529     {}
71530 
71531     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71532 
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71533     PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
71534     {
71535       *this = rhs;
71536     }
71537 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71538 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71539     PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
71540     {
71541       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>( &rhs );
71542       return *this;
71543     }
71544 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71545     PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
71546     {
71547       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan12Features ) );
71548       return *this;
71549     }
71550 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71551     PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71552     {
71553       pNext = pNext_;
71554       return *this;
71555     }
71556 
setSamplerMirrorClampToEdgeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71557     PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
71558     {
71559       samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
71560       return *this;
71561     }
71562 
setDrawIndirectCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71563     PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
71564     {
71565       drawIndirectCount = drawIndirectCount_;
71566       return *this;
71567     }
71568 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71569     PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
71570     {
71571       storageBuffer8BitAccess = storageBuffer8BitAccess_;
71572       return *this;
71573     }
71574 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71575     PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
71576     {
71577       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
71578       return *this;
71579     }
71580 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71581     PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
71582     {
71583       storagePushConstant8 = storagePushConstant8_;
71584       return *this;
71585     }
71586 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71587     PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
71588     {
71589       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
71590       return *this;
71591     }
71592 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71593     PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
71594     {
71595       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
71596       return *this;
71597     }
71598 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71599     PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
71600     {
71601       shaderFloat16 = shaderFloat16_;
71602       return *this;
71603     }
71604 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71605     PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
71606     {
71607       shaderInt8 = shaderInt8_;
71608       return *this;
71609     }
71610 
setDescriptorIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71611     PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
71612     {
71613       descriptorIndexing = descriptorIndexing_;
71614       return *this;
71615     }
71616 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71617     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
71618     {
71619       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
71620       return *this;
71621     }
71622 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71623     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
71624     {
71625       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
71626       return *this;
71627     }
71628 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71629     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
71630     {
71631       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
71632       return *this;
71633     }
71634 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71635     PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
71636     {
71637       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
71638       return *this;
71639     }
71640 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71641     PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
71642     {
71643       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
71644       return *this;
71645     }
71646 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71647     PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
71648     {
71649       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
71650       return *this;
71651     }
71652 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71653     PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
71654     {
71655       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
71656       return *this;
71657     }
71658 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71659     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
71660     {
71661       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
71662       return *this;
71663     }
71664 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71665     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
71666     {
71667       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
71668       return *this;
71669     }
71670 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71671     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
71672     {
71673       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
71674       return *this;
71675     }
71676 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71677     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
71678     {
71679       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
71680       return *this;
71681     }
71682 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71683     PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
71684     {
71685       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
71686       return *this;
71687     }
71688 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71689     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
71690     {
71691       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
71692       return *this;
71693     }
71694 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71695     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
71696     {
71697       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
71698       return *this;
71699     }
71700 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71701     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
71702     {
71703       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
71704       return *this;
71705     }
71706 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71707     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
71708     {
71709       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
71710       return *this;
71711     }
71712 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71713     PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
71714     {
71715       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
71716       return *this;
71717     }
71718 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71719     PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
71720     {
71721       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
71722       return *this;
71723     }
71724 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71725     PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
71726     {
71727       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
71728       return *this;
71729     }
71730 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71731     PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
71732     {
71733       runtimeDescriptorArray = runtimeDescriptorArray_;
71734       return *this;
71735     }
71736 
setSamplerFilterMinmaxVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71737     PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
71738     {
71739       samplerFilterMinmax = samplerFilterMinmax_;
71740       return *this;
71741     }
71742 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71743     PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
71744     {
71745       scalarBlockLayout = scalarBlockLayout_;
71746       return *this;
71747     }
71748 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71749     PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
71750     {
71751       imagelessFramebuffer = imagelessFramebuffer_;
71752       return *this;
71753     }
71754 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71755     PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
71756     {
71757       uniformBufferStandardLayout = uniformBufferStandardLayout_;
71758       return *this;
71759     }
71760 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71761     PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
71762     {
71763       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
71764       return *this;
71765     }
71766 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71767     PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
71768     {
71769       separateDepthStencilLayouts = separateDepthStencilLayouts_;
71770       return *this;
71771     }
71772 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71773     PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
71774     {
71775       hostQueryReset = hostQueryReset_;
71776       return *this;
71777     }
71778 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71779     PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
71780     {
71781       timelineSemaphore = timelineSemaphore_;
71782       return *this;
71783     }
71784 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71785     PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
71786     {
71787       bufferDeviceAddress = bufferDeviceAddress_;
71788       return *this;
71789     }
71790 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71791     PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
71792     {
71793       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
71794       return *this;
71795     }
71796 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71797     PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
71798     {
71799       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
71800       return *this;
71801     }
71802 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71803     PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
71804     {
71805       vulkanMemoryModel = vulkanMemoryModel_;
71806       return *this;
71807     }
71808 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71809     PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
71810     {
71811       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
71812       return *this;
71813     }
71814 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71815     PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
71816     {
71817       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
71818       return *this;
71819     }
71820 
setShaderOutputViewportIndexVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71821     PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
71822     {
71823       shaderOutputViewportIndex = shaderOutputViewportIndex_;
71824       return *this;
71825     }
71826 
setShaderOutputLayerVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71827     PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
71828     {
71829       shaderOutputLayer = shaderOutputLayer_;
71830       return *this;
71831     }
71832 
setSubgroupBroadcastDynamicIdVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71833     PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
71834     {
71835       subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
71836       return *this;
71837     }
71838 
71839 
operator VkPhysicalDeviceVulkan12Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71840     operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT
71841     {
71842       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>( this );
71843     }
71844 
operator VkPhysicalDeviceVulkan12Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71845     operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
71846     {
71847       return *reinterpret_cast<VkPhysicalDeviceVulkan12Features*>( this );
71848     }
71849 
71850 
71851 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71852     auto operator<=>( PhysicalDeviceVulkan12Features const& ) const = default;
71853 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71854     bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
71855     {
71856       return ( sType == rhs.sType )
71857           && ( pNext == rhs.pNext )
71858           && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge )
71859           && ( drawIndirectCount == rhs.drawIndirectCount )
71860           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
71861           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
71862           && ( storagePushConstant8 == rhs.storagePushConstant8 )
71863           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
71864           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics )
71865           && ( shaderFloat16 == rhs.shaderFloat16 )
71866           && ( shaderInt8 == rhs.shaderInt8 )
71867           && ( descriptorIndexing == rhs.descriptorIndexing )
71868           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
71869           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
71870           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
71871           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
71872           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
71873           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
71874           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
71875           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
71876           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
71877           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
71878           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
71879           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
71880           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
71881           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
71882           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
71883           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
71884           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
71885           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
71886           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
71887           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray )
71888           && ( samplerFilterMinmax == rhs.samplerFilterMinmax )
71889           && ( scalarBlockLayout == rhs.scalarBlockLayout )
71890           && ( imagelessFramebuffer == rhs.imagelessFramebuffer )
71891           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout )
71892           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes )
71893           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts )
71894           && ( hostQueryReset == rhs.hostQueryReset )
71895           && ( timelineSemaphore == rhs.timelineSemaphore )
71896           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
71897           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
71898           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice )
71899           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
71900           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
71901           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains )
71902           && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex )
71903           && ( shaderOutputLayer == rhs.shaderOutputLayer )
71904           && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
71905     }
71906 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features71907     bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
71908     {
71909       return !operator==( rhs );
71910     }
71911 #endif
71912 
71913 
71914 
71915   public:
71916     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
71917     void* pNext = {};
71918     VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
71919     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
71920     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
71921     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
71922     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
71923     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
71924     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
71925     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
71926     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
71927     VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
71928     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
71929     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
71930     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
71931     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
71932     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
71933     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
71934     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
71935     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
71936     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
71937     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
71938     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
71939     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
71940     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
71941     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
71942     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
71943     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
71944     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
71945     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
71946     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
71947     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
71948     VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
71949     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
71950     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
71951     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
71952     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
71953     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
71954     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
71955     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
71956     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
71957     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
71958     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
71959     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
71960     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
71961     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
71962     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
71963     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
71964     VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
71965 
71966   };
71967   static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" );
71968   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Features>::value, "struct wrapper is not a standard layout!" );
71969 
71970   template <>
71971   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
71972   {
71973     using Type = PhysicalDeviceVulkan12Features;
71974   };
71975 
71976   struct PhysicalDeviceVulkan12Properties
71977   {
71978     static const bool allowDuplicate = false;
71979     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
71980 
71981 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties71982     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
71983     : 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_ )
71984     {}
71985 
71986     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71987 
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties71988     PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
71989     {
71990       *this = rhs;
71991     }
71992 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71993 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties71994     PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
71995     {
71996       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>( &rhs );
71997       return *this;
71998     }
71999 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72000     PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72001     {
72002       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan12Properties ) );
72003       return *this;
72004     }
72005 
72006 
operator VkPhysicalDeviceVulkan12Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72007     operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT
72008     {
72009       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>( this );
72010     }
72011 
operator VkPhysicalDeviceVulkan12Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72012     operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
72013     {
72014       return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>( this );
72015     }
72016 
72017 
72018 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72019     auto operator<=>( PhysicalDeviceVulkan12Properties const& ) const = default;
72020 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72021     bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72022     {
72023       return ( sType == rhs.sType )
72024           && ( pNext == rhs.pNext )
72025           && ( driverID == rhs.driverID )
72026           && ( driverName == rhs.driverName )
72027           && ( driverInfo == rhs.driverInfo )
72028           && ( conformanceVersion == rhs.conformanceVersion )
72029           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
72030           && ( roundingModeIndependence == rhs.roundingModeIndependence )
72031           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
72032           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
72033           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
72034           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
72035           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
72036           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
72037           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
72038           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
72039           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
72040           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
72041           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
72042           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
72043           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
72044           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
72045           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 )
72046           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
72047           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
72048           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
72049           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
72050           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
72051           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
72052           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
72053           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
72054           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
72055           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
72056           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
72057           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
72058           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
72059           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
72060           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
72061           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
72062           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
72063           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
72064           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
72065           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
72066           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
72067           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
72068           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments )
72069           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
72070           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
72071           && ( independentResolveNone == rhs.independentResolveNone )
72072           && ( independentResolve == rhs.independentResolve )
72073           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
72074           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping )
72075           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference )
72076           && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
72077     }
72078 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties72079     bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72080     {
72081       return !operator==( rhs );
72082     }
72083 #endif
72084 
72085 
72086 
72087   public:
72088     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
72089     void* pNext = {};
72090     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
72091     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
72092     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
72093     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
72094     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
72095     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
72096     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
72097     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
72098     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
72099     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
72100     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
72101     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
72102     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
72103     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
72104     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
72105     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
72106     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
72107     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
72108     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
72109     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
72110     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
72111     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
72112     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
72113     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
72114     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
72115     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
72116     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
72117     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
72118     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
72119     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
72120     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
72121     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
72122     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
72123     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
72124     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
72125     uint32_t maxPerStageUpdateAfterBindResources = {};
72126     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
72127     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
72128     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
72129     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
72130     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
72131     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
72132     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
72133     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
72134     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
72135     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
72136     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
72137     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
72138     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
72139     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
72140     uint64_t maxTimelineSemaphoreValueDifference = {};
72141     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
72142 
72143   };
72144   static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" );
72145   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Properties>::value, "struct wrapper is not a standard layout!" );
72146 
72147   template <>
72148   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
72149   {
72150     using Type = PhysicalDeviceVulkan12Properties;
72151   };
72152 
72153   struct PhysicalDeviceVulkanMemoryModelFeatures
72154   {
72155     static const bool allowDuplicate = false;
72156     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
72157 
72158 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72159     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures(VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}) VULKAN_HPP_NOEXCEPT
72160     : vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
72161     {}
72162 
72163     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72164 
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72165     PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72166     {
72167       *this = rhs;
72168     }
72169 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72170 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72171     PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72172     {
72173       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs );
72174       return *this;
72175     }
72176 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72177     PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72178     {
72179       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) );
72180       return *this;
72181     }
72182 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72183     PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72184     {
72185       pNext = pNext_;
72186       return *this;
72187     }
72188 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72189     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
72190     {
72191       vulkanMemoryModel = vulkanMemoryModel_;
72192       return *this;
72193     }
72194 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72195     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
72196     {
72197       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
72198       return *this;
72199     }
72200 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72201     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
72202     {
72203       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
72204       return *this;
72205     }
72206 
72207 
operator VkPhysicalDeviceVulkanMemoryModelFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72208     operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT
72209     {
72210       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
72211     }
72212 
operator VkPhysicalDeviceVulkanMemoryModelFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72213     operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
72214     {
72215       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
72216     }
72217 
72218 
72219 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72220     auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const& ) const = default;
72221 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72222     bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72223     {
72224       return ( sType == rhs.sType )
72225           && ( pNext == rhs.pNext )
72226           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
72227           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
72228           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
72229     }
72230 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures72231     bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72232     {
72233       return !operator==( rhs );
72234     }
72235 #endif
72236 
72237 
72238 
72239   public:
72240     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
72241     void* pNext = {};
72242     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
72243     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
72244     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
72245 
72246   };
72247   static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" );
72248   static_assert( std::is_standard_layout<PhysicalDeviceVulkanMemoryModelFeatures>::value, "struct wrapper is not a standard layout!" );
72249 
72250   template <>
72251   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
72252   {
72253     using Type = PhysicalDeviceVulkanMemoryModelFeatures;
72254   };
72255   using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
72256 
72257   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
72258   {
72259     static const bool allowDuplicate = false;
72260     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
72261 
72262 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72263     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {}) VULKAN_HPP_NOEXCEPT
72264     : ycbcrImageArrays( ycbcrImageArrays_ )
72265     {}
72266 
72267     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72268 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72269     PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72270     {
72271       *this = rhs;
72272     }
72273 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72274 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72275     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72276     {
72277       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs );
72278       return *this;
72279     }
72280 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72281     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72282     {
72283       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) );
72284       return *this;
72285     }
72286 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72287     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72288     {
72289       pNext = pNext_;
72290       return *this;
72291     }
72292 
setYcbcrImageArraysVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72293     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
72294     {
72295       ycbcrImageArrays = ycbcrImageArrays_;
72296       return *this;
72297     }
72298 
72299 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72300     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
72301     {
72302       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
72303     }
72304 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72305     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
72306     {
72307       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
72308     }
72309 
72310 
72311 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72312     auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& ) const = default;
72313 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72314     bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72315     {
72316       return ( sType == rhs.sType )
72317           && ( pNext == rhs.pNext )
72318           && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
72319     }
72320 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT72321     bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72322     {
72323       return !operator==( rhs );
72324     }
72325 #endif
72326 
72327 
72328 
72329   public:
72330     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
72331     void* pNext = {};
72332     VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
72333 
72334   };
72335   static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" );
72336   static_assert( std::is_standard_layout<PhysicalDeviceYcbcrImageArraysFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
72337 
72338   template <>
72339   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
72340   {
72341     using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
72342   };
72343 
72344   struct PipelineColorBlendAdvancedStateCreateInfoEXT
72345   {
72346     static const bool allowDuplicate = false;
72347     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
72348 
72349 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72350     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
72351     : srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ )
72352     {}
72353 
72354     VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72355 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72356     PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72357     {
72358       *this = rhs;
72359     }
72360 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72361 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72362     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72363     {
72364       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs );
72365       return *this;
72366     }
72367 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72368     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72369     {
72370       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) );
72371       return *this;
72372     }
72373 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72374     PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72375     {
72376       pNext = pNext_;
72377       return *this;
72378     }
72379 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72380     PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
72381     {
72382       srcPremultiplied = srcPremultiplied_;
72383       return *this;
72384     }
72385 
setDstPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72386     PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
72387     {
72388       dstPremultiplied = dstPremultiplied_;
72389       return *this;
72390     }
72391 
setBlendOverlapVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72392     PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
72393     {
72394       blendOverlap = blendOverlap_;
72395       return *this;
72396     }
72397 
72398 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72399     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
72400     {
72401       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
72402     }
72403 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72404     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
72405     {
72406       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
72407     }
72408 
72409 
72410 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72411     auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const& ) const = default;
72412 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72413     bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72414     {
72415       return ( sType == rhs.sType )
72416           && ( pNext == rhs.pNext )
72417           && ( srcPremultiplied == rhs.srcPremultiplied )
72418           && ( dstPremultiplied == rhs.dstPremultiplied )
72419           && ( blendOverlap == rhs.blendOverlap );
72420     }
72421 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT72422     bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72423     {
72424       return !operator==( rhs );
72425     }
72426 #endif
72427 
72428 
72429 
72430   public:
72431     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
72432     const void* pNext = {};
72433     VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
72434     VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
72435     VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
72436 
72437   };
72438   static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" );
72439   static_assert( std::is_standard_layout<PipelineColorBlendAdvancedStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
72440 
72441   template <>
72442   struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
72443   {
72444     using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
72445   };
72446 
72447   struct PipelineCompilerControlCreateInfoAMD
72448   {
72449     static const bool allowDuplicate = false;
72450     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
72451 
72452 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72453     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD(VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {}) VULKAN_HPP_NOEXCEPT
72454     : compilerControlFlags( compilerControlFlags_ )
72455     {}
72456 
72457     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72458 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72459     PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72460     {
72461       *this = rhs;
72462     }
72463 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72464 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72465     PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72466     {
72467       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>( &rhs );
72468       return *this;
72469     }
72470 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72471     PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
72472     {
72473       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCompilerControlCreateInfoAMD ) );
72474       return *this;
72475     }
72476 
setPNextVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72477     PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72478     {
72479       pNext = pNext_;
72480       return *this;
72481     }
72482 
setCompilerControlFlagsVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72483     PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
72484     {
72485       compilerControlFlags = compilerControlFlags_;
72486       return *this;
72487     }
72488 
72489 
operator VkPipelineCompilerControlCreateInfoAMD const&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72490     operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
72491     {
72492       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>( this );
72493     }
72494 
operator VkPipelineCompilerControlCreateInfoAMD&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72495     operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
72496     {
72497       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>( this );
72498     }
72499 
72500 
72501 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72502     auto operator<=>( PipelineCompilerControlCreateInfoAMD const& ) const = default;
72503 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72504     bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
72505     {
72506       return ( sType == rhs.sType )
72507           && ( pNext == rhs.pNext )
72508           && ( compilerControlFlags == rhs.compilerControlFlags );
72509     }
72510 
operator !=VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD72511     bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
72512     {
72513       return !operator==( rhs );
72514     }
72515 #endif
72516 
72517 
72518 
72519   public:
72520     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
72521     const void* pNext = {};
72522     VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
72523 
72524   };
72525   static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" );
72526   static_assert( std::is_standard_layout<PipelineCompilerControlCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
72527 
72528   template <>
72529   struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
72530   {
72531     using Type = PipelineCompilerControlCreateInfoAMD;
72532   };
72533 
72534   struct PipelineCoverageModulationStateCreateInfoNV
72535   {
72536     static const bool allowDuplicate = false;
72537     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
72538 
72539 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72540     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
72541     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( coverageModulationTableCount_ ), pCoverageModulationTable( pCoverageModulationTable_ )
72542     {}
72543 
72544     VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72545 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72546     PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72547     {
72548       *this = rhs;
72549     }
72550 
72551 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72552     PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ )
72553     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( static_cast<uint32_t>( coverageModulationTable_.size() ) ), pCoverageModulationTable( coverageModulationTable_.data() )
72554     {}
72555 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
72556 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72557 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72558     PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72559     {
72560       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>( &rhs );
72561       return *this;
72562     }
72563 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72564     PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72565     {
72566       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageModulationStateCreateInfoNV ) );
72567       return *this;
72568     }
72569 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72570     PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72571     {
72572       pNext = pNext_;
72573       return *this;
72574     }
72575 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72576     PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
72577     {
72578       flags = flags_;
72579       return *this;
72580     }
72581 
setCoverageModulationModeVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72582     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
72583     {
72584       coverageModulationMode = coverageModulationMode_;
72585       return *this;
72586     }
72587 
setCoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72588     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
72589     {
72590       coverageModulationTableEnable = coverageModulationTableEnable_;
72591       return *this;
72592     }
72593 
setCoverageModulationTableCountVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72594     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
72595     {
72596       coverageModulationTableCount = coverageModulationTableCount_;
72597       return *this;
72598     }
72599 
setPCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72600     PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
72601     {
72602       pCoverageModulationTable = pCoverageModulationTable_;
72603       return *this;
72604     }
72605 
72606 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72607     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
72608     {
72609       coverageModulationTableCount = static_cast<uint32_t>( coverageModulationTable_.size() );
72610       pCoverageModulationTable = coverageModulationTable_.data();
72611       return *this;
72612     }
72613 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
72614 
72615 
operator VkPipelineCoverageModulationStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72616     operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
72617     {
72618       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
72619     }
72620 
operator VkPipelineCoverageModulationStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72621     operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
72622     {
72623       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
72624     }
72625 
72626 
72627 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72628     auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const& ) const = default;
72629 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72630     bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
72631     {
72632       return ( sType == rhs.sType )
72633           && ( pNext == rhs.pNext )
72634           && ( flags == rhs.flags )
72635           && ( coverageModulationMode == rhs.coverageModulationMode )
72636           && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
72637           && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
72638           && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
72639     }
72640 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV72641     bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
72642     {
72643       return !operator==( rhs );
72644     }
72645 #endif
72646 
72647 
72648 
72649   public:
72650     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
72651     const void* pNext = {};
72652     VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
72653     VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
72654     VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
72655     uint32_t coverageModulationTableCount = {};
72656     const float* pCoverageModulationTable = {};
72657 
72658   };
72659   static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" );
72660   static_assert( std::is_standard_layout<PipelineCoverageModulationStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
72661 
72662   template <>
72663   struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
72664   {
72665     using Type = PipelineCoverageModulationStateCreateInfoNV;
72666   };
72667 
72668   struct PipelineCoverageReductionStateCreateInfoNV
72669   {
72670     static const bool allowDuplicate = false;
72671     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
72672 
72673 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72674     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge) VULKAN_HPP_NOEXCEPT
72675     : flags( flags_ ), coverageReductionMode( coverageReductionMode_ )
72676     {}
72677 
72678     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72679 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72680     PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72681     {
72682       *this = rhs;
72683     }
72684 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72685 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72686     PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72687     {
72688       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>( &rhs );
72689       return *this;
72690     }
72691 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72692     PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72693     {
72694       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageReductionStateCreateInfoNV ) );
72695       return *this;
72696     }
72697 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72698     PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72699     {
72700       pNext = pNext_;
72701       return *this;
72702     }
72703 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72704     PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
72705     {
72706       flags = flags_;
72707       return *this;
72708     }
72709 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72710     PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
72711     {
72712       coverageReductionMode = coverageReductionMode_;
72713       return *this;
72714     }
72715 
72716 
operator VkPipelineCoverageReductionStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72717     operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
72718     {
72719       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
72720     }
72721 
operator VkPipelineCoverageReductionStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72722     operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
72723     {
72724       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
72725     }
72726 
72727 
72728 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72729     auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const& ) const = default;
72730 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72731     bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
72732     {
72733       return ( sType == rhs.sType )
72734           && ( pNext == rhs.pNext )
72735           && ( flags == rhs.flags )
72736           && ( coverageReductionMode == rhs.coverageReductionMode );
72737     }
72738 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV72739     bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
72740     {
72741       return !operator==( rhs );
72742     }
72743 #endif
72744 
72745 
72746 
72747   public:
72748     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
72749     const void* pNext = {};
72750     VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
72751     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
72752 
72753   };
72754   static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" );
72755   static_assert( std::is_standard_layout<PipelineCoverageReductionStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
72756 
72757   template <>
72758   struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
72759   {
72760     using Type = PipelineCoverageReductionStateCreateInfoNV;
72761   };
72762 
72763   struct PipelineCoverageToColorStateCreateInfoNV
72764   {
72765     static const bool allowDuplicate = false;
72766     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
72767 
72768 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72769     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, uint32_t coverageToColorLocation_ = {}) VULKAN_HPP_NOEXCEPT
72770     : flags( flags_ ), coverageToColorEnable( coverageToColorEnable_ ), coverageToColorLocation( coverageToColorLocation_ )
72771     {}
72772 
72773     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72774 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72775     PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72776     {
72777       *this = rhs;
72778     }
72779 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72780 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72781     PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72782     {
72783       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>( &rhs );
72784       return *this;
72785     }
72786 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72787     PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
72788     {
72789       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageToColorStateCreateInfoNV ) );
72790       return *this;
72791     }
72792 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72793     PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72794     {
72795       pNext = pNext_;
72796       return *this;
72797     }
72798 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72799     PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
72800     {
72801       flags = flags_;
72802       return *this;
72803     }
72804 
setCoverageToColorEnableVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72805     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
72806     {
72807       coverageToColorEnable = coverageToColorEnable_;
72808       return *this;
72809     }
72810 
setCoverageToColorLocationVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72811     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
72812     {
72813       coverageToColorLocation = coverageToColorLocation_;
72814       return *this;
72815     }
72816 
72817 
operator VkPipelineCoverageToColorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72818     operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
72819     {
72820       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
72821     }
72822 
operator VkPipelineCoverageToColorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72823     operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
72824     {
72825       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
72826     }
72827 
72828 
72829 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72830     auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const& ) const = default;
72831 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72832     bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
72833     {
72834       return ( sType == rhs.sType )
72835           && ( pNext == rhs.pNext )
72836           && ( flags == rhs.flags )
72837           && ( coverageToColorEnable == rhs.coverageToColorEnable )
72838           && ( coverageToColorLocation == rhs.coverageToColorLocation );
72839     }
72840 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV72841     bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
72842     {
72843       return !operator==( rhs );
72844     }
72845 #endif
72846 
72847 
72848 
72849   public:
72850     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
72851     const void* pNext = {};
72852     VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
72853     VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
72854     uint32_t coverageToColorLocation = {};
72855 
72856   };
72857   static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" );
72858   static_assert( std::is_standard_layout<PipelineCoverageToColorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
72859 
72860   template <>
72861   struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
72862   {
72863     using Type = PipelineCoverageToColorStateCreateInfoNV;
72864   };
72865 
72866   struct PipelineCreationFeedbackEXT
72867   {
72868 
72869 
72870 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72871     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, uint64_t duration_ = {}) VULKAN_HPP_NOEXCEPT
72872     : flags( flags_ ), duration( duration_ )
72873     {}
72874 
72875     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72876 
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72877     PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72878     {
72879       *this = rhs;
72880     }
72881 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72882 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72883     PipelineCreationFeedbackEXT & operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72884     {
72885       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT const *>( &rhs );
72886       return *this;
72887     }
72888 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72889     PipelineCreationFeedbackEXT & operator=( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72890     {
72891       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCreationFeedbackEXT ) );
72892       return *this;
72893     }
72894 
72895 
operator VkPipelineCreationFeedbackEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72896     operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT
72897     {
72898       return *reinterpret_cast<const VkPipelineCreationFeedbackEXT*>( this );
72899     }
72900 
operator VkPipelineCreationFeedbackEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72901     operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT
72902     {
72903       return *reinterpret_cast<VkPipelineCreationFeedbackEXT*>( this );
72904     }
72905 
72906 
72907 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72908     auto operator<=>( PipelineCreationFeedbackEXT const& ) const = default;
72909 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72910     bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72911     {
72912       return ( flags == rhs.flags )
72913           && ( duration == rhs.duration );
72914     }
72915 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT72916     bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72917     {
72918       return !operator==( rhs );
72919     }
72920 #endif
72921 
72922 
72923 
72924   public:
72925     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {};
72926     uint64_t duration = {};
72927 
72928   };
72929   static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" );
72930   static_assert( std::is_standard_layout<PipelineCreationFeedbackEXT>::value, "struct wrapper is not a standard layout!" );
72931 
72932   struct PipelineCreationFeedbackCreateInfoEXT
72933   {
72934     static const bool allowDuplicate = false;
72935     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
72936 
72937 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72938     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {}, uint32_t pipelineStageCreationFeedbackCount_ = {}, VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {}) VULKAN_HPP_NOEXCEPT
72939     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ), pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
72940     {}
72941 
72942     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72943 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72944     PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72945     {
72946       *this = rhs;
72947     }
72948 
72949 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72950     PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ )
72951     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() ) ), pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() )
72952     {}
72953 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
72954 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72955 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72956     PipelineCreationFeedbackCreateInfoEXT & operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72957     {
72958       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT const *>( &rhs );
72959       return *this;
72960     }
72961 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72962     PipelineCreationFeedbackCreateInfoEXT & operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72963     {
72964       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCreationFeedbackCreateInfoEXT ) );
72965       return *this;
72966     }
72967 
setPNextVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72968     PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
72969     {
72970       pNext = pNext_;
72971       return *this;
72972     }
72973 
setPPipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72974     PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
72975     {
72976       pPipelineCreationFeedback = pPipelineCreationFeedback_;
72977       return *this;
72978     }
72979 
setPipelineStageCreationFeedbackCountVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72980     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
72981     {
72982       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
72983       return *this;
72984     }
72985 
setPPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72986     PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
72987     {
72988       pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
72989       return *this;
72990     }
72991 
72992 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT72993     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
72994     {
72995       pipelineStageCreationFeedbackCount = static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() );
72996       pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
72997       return *this;
72998     }
72999 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73000 
73001 
operator VkPipelineCreationFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73002     operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73003     {
73004       return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>( this );
73005     }
73006 
operator VkPipelineCreationFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73007     operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73008     {
73009       return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>( this );
73010     }
73011 
73012 
73013 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73014     auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const& ) const = default;
73015 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73016     bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73017     {
73018       return ( sType == rhs.sType )
73019           && ( pNext == rhs.pNext )
73020           && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
73021           && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
73022           && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
73023     }
73024 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT73025     bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73026     {
73027       return !operator==( rhs );
73028     }
73029 #endif
73030 
73031 
73032 
73033   public:
73034     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
73035     const void* pNext = {};
73036     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {};
73037     uint32_t pipelineStageCreationFeedbackCount = {};
73038     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {};
73039 
73040   };
73041   static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" );
73042   static_assert( std::is_standard_layout<PipelineCreationFeedbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73043 
73044   template <>
73045   struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfoEXT>
73046   {
73047     using Type = PipelineCreationFeedbackCreateInfoEXT;
73048   };
73049 
73050   struct PipelineDiscardRectangleStateCreateInfoEXT
73051   {
73052     static const bool allowDuplicate = false;
73053     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
73054 
73055 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73056     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
73057     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( discardRectangleCount_ ), pDiscardRectangles( pDiscardRectangles_ )
73058     {}
73059 
73060     VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73061 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73062     PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73063     {
73064       *this = rhs;
73065     }
73066 
73067 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73068     PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ )
73069     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( static_cast<uint32_t>( discardRectangles_.size() ) ), pDiscardRectangles( discardRectangles_.data() )
73070     {}
73071 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73072 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73073 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73074     PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73075     {
73076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs );
73077       return *this;
73078     }
73079 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73080     PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73081     {
73082       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) );
73083       return *this;
73084     }
73085 
setPNextVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73086     PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73087     {
73088       pNext = pNext_;
73089       return *this;
73090     }
73091 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73092     PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
73093     {
73094       flags = flags_;
73095       return *this;
73096     }
73097 
setDiscardRectangleModeVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73098     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
73099     {
73100       discardRectangleMode = discardRectangleMode_;
73101       return *this;
73102     }
73103 
setDiscardRectangleCountVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73104     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
73105     {
73106       discardRectangleCount = discardRectangleCount_;
73107       return *this;
73108     }
73109 
setPDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73110     PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
73111     {
73112       pDiscardRectangles = pDiscardRectangles_;
73113       return *this;
73114     }
73115 
73116 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73117     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT
73118     {
73119       discardRectangleCount = static_cast<uint32_t>( discardRectangles_.size() );
73120       pDiscardRectangles = discardRectangles_.data();
73121       return *this;
73122     }
73123 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73124 
73125 
operator VkPipelineDiscardRectangleStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73126     operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73127     {
73128       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
73129     }
73130 
operator VkPipelineDiscardRectangleStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73131     operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73132     {
73133       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
73134     }
73135 
73136 
73137 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73138     auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const& ) const = default;
73139 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73140     bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73141     {
73142       return ( sType == rhs.sType )
73143           && ( pNext == rhs.pNext )
73144           && ( flags == rhs.flags )
73145           && ( discardRectangleMode == rhs.discardRectangleMode )
73146           && ( discardRectangleCount == rhs.discardRectangleCount )
73147           && ( pDiscardRectangles == rhs.pDiscardRectangles );
73148     }
73149 
operator !=VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT73150     bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73151     {
73152       return !operator==( rhs );
73153     }
73154 #endif
73155 
73156 
73157 
73158   public:
73159     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
73160     const void* pNext = {};
73161     VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
73162     VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
73163     uint32_t discardRectangleCount = {};
73164     const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {};
73165 
73166   };
73167   static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" );
73168   static_assert( std::is_standard_layout<PipelineDiscardRectangleStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73169 
73170   template <>
73171   struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
73172   {
73173     using Type = PipelineDiscardRectangleStateCreateInfoEXT;
73174   };
73175 
73176   struct PipelineRasterizationConservativeStateCreateInfoEXT
73177   {
73178     static const bool allowDuplicate = false;
73179     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
73180 
73181 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73182     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, float extraPrimitiveOverestimationSize_ = {}) VULKAN_HPP_NOEXCEPT
73183     : flags( flags_ ), conservativeRasterizationMode( conservativeRasterizationMode_ ), extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
73184     {}
73185 
73186     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73187 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73188     PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73189     {
73190       *this = rhs;
73191     }
73192 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73193 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73194     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73195     {
73196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs );
73197       return *this;
73198     }
73199 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73200     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73201     {
73202       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) );
73203       return *this;
73204     }
73205 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73206     PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73207     {
73208       pNext = pNext_;
73209       return *this;
73210     }
73211 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73212     PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
73213     {
73214       flags = flags_;
73215       return *this;
73216     }
73217 
setConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73218     PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
73219     {
73220       conservativeRasterizationMode = conservativeRasterizationMode_;
73221       return *this;
73222     }
73223 
setExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73224     PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
73225     {
73226       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
73227       return *this;
73228     }
73229 
73230 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73231     operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73232     {
73233       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
73234     }
73235 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73236     operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73237     {
73238       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
73239     }
73240 
73241 
73242 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73243     auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const& ) const = default;
73244 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73245     bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73246     {
73247       return ( sType == rhs.sType )
73248           && ( pNext == rhs.pNext )
73249           && ( flags == rhs.flags )
73250           && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
73251           && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
73252     }
73253 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT73254     bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73255     {
73256       return !operator==( rhs );
73257     }
73258 #endif
73259 
73260 
73261 
73262   public:
73263     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
73264     const void* pNext = {};
73265     VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
73266     VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
73267     float extraPrimitiveOverestimationSize = {};
73268 
73269   };
73270   static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" );
73271   static_assert( std::is_standard_layout<PipelineRasterizationConservativeStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73272 
73273   template <>
73274   struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
73275   {
73276     using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
73277   };
73278 
73279   struct PipelineRasterizationDepthClipStateCreateInfoEXT
73280   {
73281     static const bool allowDuplicate = false;
73282     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
73283 
73284 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73285     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
73286     : flags( flags_ ), depthClipEnable( depthClipEnable_ )
73287     {}
73288 
73289     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73290 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73291     PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73292     {
73293       *this = rhs;
73294     }
73295 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73296 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73297     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73298     {
73299       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs );
73300       return *this;
73301     }
73302 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73303     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73304     {
73305       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) );
73306       return *this;
73307     }
73308 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73309     PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73310     {
73311       pNext = pNext_;
73312       return *this;
73313     }
73314 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73315     PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
73316     {
73317       flags = flags_;
73318       return *this;
73319     }
73320 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73321     PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
73322     {
73323       depthClipEnable = depthClipEnable_;
73324       return *this;
73325     }
73326 
73327 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73328     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73329     {
73330       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
73331     }
73332 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73333     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73334     {
73335       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
73336     }
73337 
73338 
73339 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73340     auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const& ) const = default;
73341 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73342     bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73343     {
73344       return ( sType == rhs.sType )
73345           && ( pNext == rhs.pNext )
73346           && ( flags == rhs.flags )
73347           && ( depthClipEnable == rhs.depthClipEnable );
73348     }
73349 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT73350     bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73351     {
73352       return !operator==( rhs );
73353     }
73354 #endif
73355 
73356 
73357 
73358   public:
73359     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
73360     const void* pNext = {};
73361     VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
73362     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
73363 
73364   };
73365   static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" );
73366   static_assert( std::is_standard_layout<PipelineRasterizationDepthClipStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73367 
73368   template <>
73369   struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
73370   {
73371     using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
73372   };
73373 
73374   struct PipelineRasterizationLineStateCreateInfoEXT
73375   {
73376     static const bool allowDuplicate = false;
73377     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
73378 
73379 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73380     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
73381     : lineRasterizationMode( lineRasterizationMode_ ), stippledLineEnable( stippledLineEnable_ ), lineStippleFactor( lineStippleFactor_ ), lineStipplePattern( lineStipplePattern_ )
73382     {}
73383 
73384     VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73385 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73386     PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73387     {
73388       *this = rhs;
73389     }
73390 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73391 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73392     PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73393     {
73394       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs );
73395       return *this;
73396     }
73397 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73398     PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73399     {
73400       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationLineStateCreateInfoEXT ) );
73401       return *this;
73402     }
73403 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73404     PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73405     {
73406       pNext = pNext_;
73407       return *this;
73408     }
73409 
setLineRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73410     PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
73411     {
73412       lineRasterizationMode = lineRasterizationMode_;
73413       return *this;
73414     }
73415 
setStippledLineEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73416     PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
73417     {
73418       stippledLineEnable = stippledLineEnable_;
73419       return *this;
73420     }
73421 
setLineStippleFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73422     PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
73423     {
73424       lineStippleFactor = lineStippleFactor_;
73425       return *this;
73426     }
73427 
setLineStipplePatternVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73428     PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
73429     {
73430       lineStipplePattern = lineStipplePattern_;
73431       return *this;
73432     }
73433 
73434 
operator VkPipelineRasterizationLineStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73435     operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73436     {
73437       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
73438     }
73439 
operator VkPipelineRasterizationLineStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73440     operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73441     {
73442       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
73443     }
73444 
73445 
73446 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73447     auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const& ) const = default;
73448 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73449     bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73450     {
73451       return ( sType == rhs.sType )
73452           && ( pNext == rhs.pNext )
73453           && ( lineRasterizationMode == rhs.lineRasterizationMode )
73454           && ( stippledLineEnable == rhs.stippledLineEnable )
73455           && ( lineStippleFactor == rhs.lineStippleFactor )
73456           && ( lineStipplePattern == rhs.lineStipplePattern );
73457     }
73458 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT73459     bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73460     {
73461       return !operator==( rhs );
73462     }
73463 #endif
73464 
73465 
73466 
73467   public:
73468     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
73469     const void* pNext = {};
73470     VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
73471     VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
73472     uint32_t lineStippleFactor = {};
73473     uint16_t lineStipplePattern = {};
73474 
73475   };
73476   static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" );
73477   static_assert( std::is_standard_layout<PipelineRasterizationLineStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73478 
73479   template <>
73480   struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
73481   {
73482     using Type = PipelineRasterizationLineStateCreateInfoEXT;
73483   };
73484 
73485   struct PipelineRasterizationStateRasterizationOrderAMD
73486   {
73487     static const bool allowDuplicate = false;
73488     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
73489 
73490 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73491     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict) VULKAN_HPP_NOEXCEPT
73492     : rasterizationOrder( rasterizationOrder_ )
73493     {}
73494 
73495     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73496 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73497     PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73498     {
73499       *this = rhs;
73500     }
73501 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73502 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73503     PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73504     {
73505       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs );
73506       return *this;
73507     }
73508 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73509     PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73510     {
73511       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateRasterizationOrderAMD ) );
73512       return *this;
73513     }
73514 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73515     PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73516     {
73517       pNext = pNext_;
73518       return *this;
73519     }
73520 
setRasterizationOrderVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73521     PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
73522     {
73523       rasterizationOrder = rasterizationOrder_;
73524       return *this;
73525     }
73526 
73527 
operator VkPipelineRasterizationStateRasterizationOrderAMD const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73528     operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT
73529     {
73530       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
73531     }
73532 
operator VkPipelineRasterizationStateRasterizationOrderAMD&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73533     operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
73534     {
73535       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
73536     }
73537 
73538 
73539 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73540     auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const& ) const = default;
73541 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73542     bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
73543     {
73544       return ( sType == rhs.sType )
73545           && ( pNext == rhs.pNext )
73546           && ( rasterizationOrder == rhs.rasterizationOrder );
73547     }
73548 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD73549     bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
73550     {
73551       return !operator==( rhs );
73552     }
73553 #endif
73554 
73555 
73556 
73557   public:
73558     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
73559     const void* pNext = {};
73560     VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
73561 
73562   };
73563   static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" );
73564   static_assert( std::is_standard_layout<PipelineRasterizationStateRasterizationOrderAMD>::value, "struct wrapper is not a standard layout!" );
73565 
73566   template <>
73567   struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
73568   {
73569     using Type = PipelineRasterizationStateRasterizationOrderAMD;
73570   };
73571 
73572   struct PipelineRasterizationStateStreamCreateInfoEXT
73573   {
73574     static const bool allowDuplicate = false;
73575     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
73576 
73577 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73578     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, uint32_t rasterizationStream_ = {}) VULKAN_HPP_NOEXCEPT
73579     : flags( flags_ ), rasterizationStream( rasterizationStream_ )
73580     {}
73581 
73582     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73583 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73584     PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73585     {
73586       *this = rhs;
73587     }
73588 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73589 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73590     PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73591     {
73592       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs );
73593       return *this;
73594     }
73595 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73596     PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73597     {
73598       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) );
73599       return *this;
73600     }
73601 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73602     PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73603     {
73604       pNext = pNext_;
73605       return *this;
73606     }
73607 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73608     PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
73609     {
73610       flags = flags_;
73611       return *this;
73612     }
73613 
setRasterizationStreamVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73614     PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
73615     {
73616       rasterizationStream = rasterizationStream_;
73617       return *this;
73618     }
73619 
73620 
operator VkPipelineRasterizationStateStreamCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73621     operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73622     {
73623       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
73624     }
73625 
operator VkPipelineRasterizationStateStreamCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73626     operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73627     {
73628       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
73629     }
73630 
73631 
73632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73633     auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const& ) const = default;
73634 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73635     bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73636     {
73637       return ( sType == rhs.sType )
73638           && ( pNext == rhs.pNext )
73639           && ( flags == rhs.flags )
73640           && ( rasterizationStream == rhs.rasterizationStream );
73641     }
73642 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT73643     bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73644     {
73645       return !operator==( rhs );
73646     }
73647 #endif
73648 
73649 
73650 
73651   public:
73652     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
73653     const void* pNext = {};
73654     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
73655     uint32_t rasterizationStream = {};
73656 
73657   };
73658   static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" );
73659   static_assert( std::is_standard_layout<PipelineRasterizationStateStreamCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73660 
73661   template <>
73662   struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
73663   {
73664     using Type = PipelineRasterizationStateStreamCreateInfoEXT;
73665   };
73666 
73667   struct PipelineRepresentativeFragmentTestStateCreateInfoNV
73668   {
73669     static const bool allowDuplicate = false;
73670     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
73671 
73672 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73673     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {}) VULKAN_HPP_NOEXCEPT
73674     : representativeFragmentTestEnable( representativeFragmentTestEnable_ )
73675     {}
73676 
73677     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73678 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73679     PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73680     {
73681       *this = rhs;
73682     }
73683 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73684 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73685     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73686     {
73687       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs );
73688       return *this;
73689     }
73690 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73691     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73692     {
73693       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) );
73694       return *this;
73695     }
73696 
setPNextVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73697     PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73698     {
73699       pNext = pNext_;
73700       return *this;
73701     }
73702 
setRepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73703     PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
73704     {
73705       representativeFragmentTestEnable = representativeFragmentTestEnable_;
73706       return *this;
73707     }
73708 
73709 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73710     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
73711     {
73712       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
73713     }
73714 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73715     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
73716     {
73717       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
73718     }
73719 
73720 
73721 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73722     auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const& ) const = default;
73723 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73724     bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73725     {
73726       return ( sType == rhs.sType )
73727           && ( pNext == rhs.pNext )
73728           && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
73729     }
73730 
operator !=VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV73731     bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73732     {
73733       return !operator==( rhs );
73734     }
73735 #endif
73736 
73737 
73738 
73739   public:
73740     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
73741     const void* pNext = {};
73742     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
73743 
73744   };
73745   static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" );
73746   static_assert( std::is_standard_layout<PipelineRepresentativeFragmentTestStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
73747 
73748   template <>
73749   struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
73750   {
73751     using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
73752   };
73753 
73754   struct PipelineSampleLocationsStateCreateInfoEXT
73755   {
73756     static const bool allowDuplicate = false;
73757     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
73758 
73759 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73760     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
73761     : sampleLocationsEnable( sampleLocationsEnable_ ), sampleLocationsInfo( sampleLocationsInfo_ )
73762     {}
73763 
73764     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73765 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73766     PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73767     {
73768       *this = rhs;
73769     }
73770 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73771 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73772     PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73773     {
73774       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs );
73775       return *this;
73776     }
73777 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73778     PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73779     {
73780       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineSampleLocationsStateCreateInfoEXT ) );
73781       return *this;
73782     }
73783 
setPNextVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73784     PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73785     {
73786       pNext = pNext_;
73787       return *this;
73788     }
73789 
setSampleLocationsEnableVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73790     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
73791     {
73792       sampleLocationsEnable = sampleLocationsEnable_;
73793       return *this;
73794     }
73795 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73796     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
73797     {
73798       sampleLocationsInfo = sampleLocationsInfo_;
73799       return *this;
73800     }
73801 
73802 
operator VkPipelineSampleLocationsStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73803     operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73804     {
73805       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
73806     }
73807 
operator VkPipelineSampleLocationsStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73808     operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73809     {
73810       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
73811     }
73812 
73813 
73814 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73815     auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const& ) const = default;
73816 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73817     bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73818     {
73819       return ( sType == rhs.sType )
73820           && ( pNext == rhs.pNext )
73821           && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
73822           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
73823     }
73824 
operator !=VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT73825     bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73826     {
73827       return !operator==( rhs );
73828     }
73829 #endif
73830 
73831 
73832 
73833   public:
73834     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
73835     const void* pNext = {};
73836     VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
73837     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
73838 
73839   };
73840   static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" );
73841   static_assert( std::is_standard_layout<PipelineSampleLocationsStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73842 
73843   template <>
73844   struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
73845   {
73846     using Type = PipelineSampleLocationsStateCreateInfoEXT;
73847   };
73848 
73849   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
73850   {
73851     static const bool allowDuplicate = false;
73852     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
73853 
73854 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73855     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(uint32_t requiredSubgroupSize_ = {}) VULKAN_HPP_NOEXCEPT
73856     : requiredSubgroupSize( requiredSubgroupSize_ )
73857     {}
73858 
73859     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73860 
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73861     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73862     {
73863       *this = rhs;
73864     }
73865 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73866 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73867     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73868     {
73869       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const *>( &rhs );
73870       return *this;
73871     }
73872 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73873     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73874     {
73875       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) );
73876       return *this;
73877     }
73878 
73879 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73880     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73881     {
73882       return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
73883     }
73884 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73885     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73886     {
73887       return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
73888     }
73889 
73890 
73891 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73892     auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& ) const = default;
73893 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73894     bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73895     {
73896       return ( sType == rhs.sType )
73897           && ( pNext == rhs.pNext )
73898           && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
73899     }
73900 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT73901     bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73902     {
73903       return !operator==( rhs );
73904     }
73905 #endif
73906 
73907 
73908 
73909   public:
73910     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
73911     void* pNext = {};
73912     uint32_t requiredSubgroupSize = {};
73913 
73914   };
73915   static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" );
73916   static_assert( std::is_standard_layout<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73917 
73918   template <>
73919   struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>
73920   {
73921     using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
73922   };
73923 
73924   struct PipelineTessellationDomainOriginStateCreateInfo
73925   {
73926     static const bool allowDuplicate = false;
73927     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
73928 
73929 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73930     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft) VULKAN_HPP_NOEXCEPT
73931     : domainOrigin( domainOrigin_ )
73932     {}
73933 
73934     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73935 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73936     PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
73937     {
73938       *this = rhs;
73939     }
73940 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73941 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73942     PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
73943     {
73944       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs );
73945       return *this;
73946     }
73947 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73948     PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
73949     {
73950       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineTessellationDomainOriginStateCreateInfo ) );
73951       return *this;
73952     }
73953 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73954     PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73955     {
73956       pNext = pNext_;
73957       return *this;
73958     }
73959 
setDomainOriginVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73960     PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
73961     {
73962       domainOrigin = domainOrigin_;
73963       return *this;
73964     }
73965 
73966 
operator VkPipelineTessellationDomainOriginStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73967     operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
73968     {
73969       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
73970     }
73971 
operator VkPipelineTessellationDomainOriginStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73972     operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
73973     {
73974       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
73975     }
73976 
73977 
73978 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73979     auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const& ) const = default;
73980 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73981     bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
73982     {
73983       return ( sType == rhs.sType )
73984           && ( pNext == rhs.pNext )
73985           && ( domainOrigin == rhs.domainOrigin );
73986     }
73987 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo73988     bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
73989     {
73990       return !operator==( rhs );
73991     }
73992 #endif
73993 
73994 
73995 
73996   public:
73997     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
73998     const void* pNext = {};
73999     VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
74000 
74001   };
74002   static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" );
74003   static_assert( std::is_standard_layout<PipelineTessellationDomainOriginStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
74004 
74005   template <>
74006   struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
74007   {
74008     using Type = PipelineTessellationDomainOriginStateCreateInfo;
74009   };
74010   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
74011 
74012   struct VertexInputBindingDivisorDescriptionEXT
74013   {
74014 
74015 
74016 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74017     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT(uint32_t binding_ = {}, uint32_t divisor_ = {}) VULKAN_HPP_NOEXCEPT
74018     : binding( binding_ ), divisor( divisor_ )
74019     {}
74020 
74021     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74022 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74023     VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74024     {
74025       *this = rhs;
74026     }
74027 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74028 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74029     VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74030     {
74031       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
74032       return *this;
74033     }
74034 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74035     VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74036     {
74037       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputBindingDivisorDescriptionEXT ) );
74038       return *this;
74039     }
74040 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74041     VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
74042     {
74043       binding = binding_;
74044       return *this;
74045     }
74046 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74047     VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
74048     {
74049       divisor = divisor_;
74050       return *this;
74051     }
74052 
74053 
operator VkVertexInputBindingDivisorDescriptionEXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74054     operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT
74055     {
74056       return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
74057     }
74058 
operator VkVertexInputBindingDivisorDescriptionEXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74059     operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
74060     {
74061       return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
74062     }
74063 
74064 
74065 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74066     auto operator<=>( VertexInputBindingDivisorDescriptionEXT const& ) const = default;
74067 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74068     bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74069     {
74070       return ( binding == rhs.binding )
74071           && ( divisor == rhs.divisor );
74072     }
74073 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT74074     bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74075     {
74076       return !operator==( rhs );
74077     }
74078 #endif
74079 
74080 
74081 
74082   public:
74083     uint32_t binding = {};
74084     uint32_t divisor = {};
74085 
74086   };
74087   static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" );
74088   static_assert( std::is_standard_layout<VertexInputBindingDivisorDescriptionEXT>::value, "struct wrapper is not a standard layout!" );
74089 
74090   struct PipelineVertexInputDivisorStateCreateInfoEXT
74091   {
74092     static const bool allowDuplicate = false;
74093     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
74094 
74095 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74096     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT(uint32_t vertexBindingDivisorCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {}) VULKAN_HPP_NOEXCEPT
74097     : vertexBindingDivisorCount( vertexBindingDivisorCount_ ), pVertexBindingDivisors( pVertexBindingDivisors_ )
74098     {}
74099 
74100     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74101 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74102     PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74103     {
74104       *this = rhs;
74105     }
74106 
74107 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74108     PipelineVertexInputDivisorStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
74109     : vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) ), pVertexBindingDivisors( vertexBindingDivisors_.data() )
74110     {}
74111 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74112 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74113 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74114     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74115     {
74116       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
74117       return *this;
74118     }
74119 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74120     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74121     {
74122       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) );
74123       return *this;
74124     }
74125 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74126     PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74127     {
74128       pNext = pNext_;
74129       return *this;
74130     }
74131 
setVertexBindingDivisorCountVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74132     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
74133     {
74134       vertexBindingDivisorCount = vertexBindingDivisorCount_;
74135       return *this;
74136     }
74137 
setPVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74138     PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
74139     {
74140       pVertexBindingDivisors = pVertexBindingDivisors_;
74141       return *this;
74142     }
74143 
74144 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74145     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
74146     {
74147       vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
74148       pVertexBindingDivisors = vertexBindingDivisors_.data();
74149       return *this;
74150     }
74151 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74152 
74153 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74154     operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74155     {
74156       return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
74157     }
74158 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74159     operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74160     {
74161       return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
74162     }
74163 
74164 
74165 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74166     auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const& ) const = default;
74167 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74168     bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74169     {
74170       return ( sType == rhs.sType )
74171           && ( pNext == rhs.pNext )
74172           && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
74173           && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
74174     }
74175 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT74176     bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74177     {
74178       return !operator==( rhs );
74179     }
74180 #endif
74181 
74182 
74183 
74184   public:
74185     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
74186     const void* pNext = {};
74187     uint32_t vertexBindingDivisorCount = {};
74188     const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {};
74189 
74190   };
74191   static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" );
74192   static_assert( std::is_standard_layout<PipelineVertexInputDivisorStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74193 
74194   template <>
74195   struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
74196   {
74197     using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
74198   };
74199 
74200   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
74201   {
74202     static const bool allowDuplicate = false;
74203     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
74204 
74205 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74206     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
74207     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( customSampleOrderCount_ ), pCustomSampleOrders( pCustomSampleOrders_ )
74208     {}
74209 
74210     VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74211 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74212     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74213     {
74214       *this = rhs;
74215     }
74216 
74217 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74218     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ )
74219     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( static_cast<uint32_t>( customSampleOrders_.size() ) ), pCustomSampleOrders( customSampleOrders_.data() )
74220     {}
74221 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74222 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74223 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74224     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74225     {
74226       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs );
74227       return *this;
74228     }
74229 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74230     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74231     {
74232       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) );
74233       return *this;
74234     }
74235 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74236     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74237     {
74238       pNext = pNext_;
74239       return *this;
74240     }
74241 
setSampleOrderTypeVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74242     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
74243     {
74244       sampleOrderType = sampleOrderType_;
74245       return *this;
74246     }
74247 
setCustomSampleOrderCountVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74248     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
74249     {
74250       customSampleOrderCount = customSampleOrderCount_;
74251       return *this;
74252     }
74253 
setPCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74254     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
74255     {
74256       pCustomSampleOrders = pCustomSampleOrders_;
74257       return *this;
74258     }
74259 
74260 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74261     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
74262     {
74263       customSampleOrderCount = static_cast<uint32_t>( customSampleOrders_.size() );
74264       pCustomSampleOrders = customSampleOrders_.data();
74265       return *this;
74266     }
74267 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74268 
74269 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74270     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74271     {
74272       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
74273     }
74274 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74275     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74276     {
74277       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
74278     }
74279 
74280 
74281 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74282     auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& ) const = default;
74283 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74284     bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74285     {
74286       return ( sType == rhs.sType )
74287           && ( pNext == rhs.pNext )
74288           && ( sampleOrderType == rhs.sampleOrderType )
74289           && ( customSampleOrderCount == rhs.customSampleOrderCount )
74290           && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
74291     }
74292 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV74293     bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74294     {
74295       return !operator==( rhs );
74296     }
74297 #endif
74298 
74299 
74300 
74301   public:
74302     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
74303     const void* pNext = {};
74304     VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
74305     uint32_t customSampleOrderCount = {};
74306     const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {};
74307 
74308   };
74309   static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" );
74310   static_assert( std::is_standard_layout<PipelineViewportCoarseSampleOrderStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74311 
74312   template <>
74313   struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
74314   {
74315     using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
74316   };
74317 
74318   struct PipelineViewportExclusiveScissorStateCreateInfoNV
74319   {
74320     static const bool allowDuplicate = false;
74321     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
74322 
74323 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74324     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV(uint32_t exclusiveScissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {}) VULKAN_HPP_NOEXCEPT
74325     : exclusiveScissorCount( exclusiveScissorCount_ ), pExclusiveScissors( pExclusiveScissors_ )
74326     {}
74327 
74328     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74329 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74330     PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74331     {
74332       *this = rhs;
74333     }
74334 
74335 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74336     PipelineViewportExclusiveScissorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ )
74337     : exclusiveScissorCount( static_cast<uint32_t>( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() )
74338     {}
74339 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74340 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74341 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74342     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74343     {
74344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs );
74345       return *this;
74346     }
74347 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74348     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74349     {
74350       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) );
74351       return *this;
74352     }
74353 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74354     PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74355     {
74356       pNext = pNext_;
74357       return *this;
74358     }
74359 
setExclusiveScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74360     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
74361     {
74362       exclusiveScissorCount = exclusiveScissorCount_;
74363       return *this;
74364     }
74365 
setPExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74366     PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
74367     {
74368       pExclusiveScissors = pExclusiveScissors_;
74369       return *this;
74370     }
74371 
74372 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74373     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
74374     {
74375       exclusiveScissorCount = static_cast<uint32_t>( exclusiveScissors_.size() );
74376       pExclusiveScissors = exclusiveScissors_.data();
74377       return *this;
74378     }
74379 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74380 
74381 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74382     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74383     {
74384       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
74385     }
74386 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74387     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74388     {
74389       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
74390     }
74391 
74392 
74393 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74394     auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const& ) const = default;
74395 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74396     bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74397     {
74398       return ( sType == rhs.sType )
74399           && ( pNext == rhs.pNext )
74400           && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
74401           && ( pExclusiveScissors == rhs.pExclusiveScissors );
74402     }
74403 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV74404     bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74405     {
74406       return !operator==( rhs );
74407     }
74408 #endif
74409 
74410 
74411 
74412   public:
74413     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
74414     const void* pNext = {};
74415     uint32_t exclusiveScissorCount = {};
74416     const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {};
74417 
74418   };
74419   static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" );
74420   static_assert( std::is_standard_layout<PipelineViewportExclusiveScissorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74421 
74422   template <>
74423   struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
74424   {
74425     using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
74426   };
74427 
74428   struct PipelineViewportShadingRateImageStateCreateInfoNV
74429   {
74430     static const bool allowDuplicate = false;
74431     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
74432 
74433 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74434     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {}) VULKAN_HPP_NOEXCEPT
74435     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( viewportCount_ ), pShadingRatePalettes( pShadingRatePalettes_ )
74436     {}
74437 
74438     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74439 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74440     PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74441     {
74442       *this = rhs;
74443     }
74444 
74445 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74446     PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ )
74447     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( static_cast<uint32_t>( shadingRatePalettes_.size() ) ), pShadingRatePalettes( shadingRatePalettes_.data() )
74448     {}
74449 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74450 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74451 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74452     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74453     {
74454       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs );
74455       return *this;
74456     }
74457 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74458     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74459     {
74460       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) );
74461       return *this;
74462     }
74463 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74464     PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74465     {
74466       pNext = pNext_;
74467       return *this;
74468     }
74469 
setShadingRateImageEnableVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74470     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
74471     {
74472       shadingRateImageEnable = shadingRateImageEnable_;
74473       return *this;
74474     }
74475 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74476     PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
74477     {
74478       viewportCount = viewportCount_;
74479       return *this;
74480     }
74481 
setPShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74482     PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
74483     {
74484       pShadingRatePalettes = pShadingRatePalettes_;
74485       return *this;
74486     }
74487 
74488 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74489     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
74490     {
74491       viewportCount = static_cast<uint32_t>( shadingRatePalettes_.size() );
74492       pShadingRatePalettes = shadingRatePalettes_.data();
74493       return *this;
74494     }
74495 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74496 
74497 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74498     operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74499     {
74500       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
74501     }
74502 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74503     operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74504     {
74505       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
74506     }
74507 
74508 
74509 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74510     auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const& ) const = default;
74511 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74512     bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74513     {
74514       return ( sType == rhs.sType )
74515           && ( pNext == rhs.pNext )
74516           && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
74517           && ( viewportCount == rhs.viewportCount )
74518           && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
74519     }
74520 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV74521     bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74522     {
74523       return !operator==( rhs );
74524     }
74525 #endif
74526 
74527 
74528 
74529   public:
74530     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
74531     const void* pNext = {};
74532     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
74533     uint32_t viewportCount = {};
74534     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {};
74535 
74536   };
74537   static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" );
74538   static_assert( std::is_standard_layout<PipelineViewportShadingRateImageStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74539 
74540   template <>
74541   struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
74542   {
74543     using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
74544   };
74545 
74546   struct ViewportSwizzleNV
74547   {
74548 
74549 
74550 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV74551     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
74552     : x( x_ ), y( y_ ), z( z_ ), w( w_ )
74553     {}
74554 
74555     VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74556 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV74557     ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
74558     {
74559       *this = rhs;
74560     }
74561 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74562 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV74563     ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
74564     {
74565       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>( &rhs );
74566       return *this;
74567     }
74568 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV74569     ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
74570     {
74571       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViewportSwizzleNV ) );
74572       return *this;
74573     }
74574 
setXVULKAN_HPP_NAMESPACE::ViewportSwizzleNV74575     ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
74576     {
74577       x = x_;
74578       return *this;
74579     }
74580 
setYVULKAN_HPP_NAMESPACE::ViewportSwizzleNV74581     ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
74582     {
74583       y = y_;
74584       return *this;
74585     }
74586 
setZVULKAN_HPP_NAMESPACE::ViewportSwizzleNV74587     ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
74588     {
74589       z = z_;
74590       return *this;
74591     }
74592 
setWVULKAN_HPP_NAMESPACE::ViewportSwizzleNV74593     ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
74594     {
74595       w = w_;
74596       return *this;
74597     }
74598 
74599 
operator VkViewportSwizzleNV const&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV74600     operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT
74601     {
74602       return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
74603     }
74604 
operator VkViewportSwizzleNV&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV74605     operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
74606     {
74607       return *reinterpret_cast<VkViewportSwizzleNV*>( this );
74608     }
74609 
74610 
74611 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74612     auto operator<=>( ViewportSwizzleNV const& ) const = default;
74613 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportSwizzleNV74614     bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74615     {
74616       return ( x == rhs.x )
74617           && ( y == rhs.y )
74618           && ( z == rhs.z )
74619           && ( w == rhs.w );
74620     }
74621 
operator !=VULKAN_HPP_NAMESPACE::ViewportSwizzleNV74622     bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74623     {
74624       return !operator==( rhs );
74625     }
74626 #endif
74627 
74628 
74629 
74630   public:
74631     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
74632     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
74633     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
74634     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
74635 
74636   };
74637   static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" );
74638   static_assert( std::is_standard_layout<ViewportSwizzleNV>::value, "struct wrapper is not a standard layout!" );
74639 
74640   struct PipelineViewportSwizzleStateCreateInfoNV
74641   {
74642     static const bool allowDuplicate = false;
74643     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
74644 
74645 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74646     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {}) VULKAN_HPP_NOEXCEPT
74647     : flags( flags_ ), viewportCount( viewportCount_ ), pViewportSwizzles( pViewportSwizzles_ )
74648     {}
74649 
74650     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74651 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74652     PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74653     {
74654       *this = rhs;
74655     }
74656 
74657 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74658     PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ )
74659     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() )
74660     {}
74661 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74662 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74663 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74664     PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74665     {
74666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs );
74667       return *this;
74668     }
74669 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74670     PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74671     {
74672       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportSwizzleStateCreateInfoNV ) );
74673       return *this;
74674     }
74675 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74676     PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74677     {
74678       pNext = pNext_;
74679       return *this;
74680     }
74681 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74682     PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
74683     {
74684       flags = flags_;
74685       return *this;
74686     }
74687 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74688     PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
74689     {
74690       viewportCount = viewportCount_;
74691       return *this;
74692     }
74693 
setPViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74694     PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
74695     {
74696       pViewportSwizzles = pViewportSwizzles_;
74697       return *this;
74698     }
74699 
74700 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74701     PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
74702     {
74703       viewportCount = static_cast<uint32_t>( viewportSwizzles_.size() );
74704       pViewportSwizzles = viewportSwizzles_.data();
74705       return *this;
74706     }
74707 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74708 
74709 
operator VkPipelineViewportSwizzleStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74710     operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74711     {
74712       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
74713     }
74714 
operator VkPipelineViewportSwizzleStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74715     operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74716     {
74717       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
74718     }
74719 
74720 
74721 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74722     auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const& ) const = default;
74723 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74724     bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74725     {
74726       return ( sType == rhs.sType )
74727           && ( pNext == rhs.pNext )
74728           && ( flags == rhs.flags )
74729           && ( viewportCount == rhs.viewportCount )
74730           && ( pViewportSwizzles == rhs.pViewportSwizzles );
74731     }
74732 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV74733     bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74734     {
74735       return !operator==( rhs );
74736     }
74737 #endif
74738 
74739 
74740 
74741   public:
74742     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
74743     const void* pNext = {};
74744     VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
74745     uint32_t viewportCount = {};
74746     const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {};
74747 
74748   };
74749   static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" );
74750   static_assert( std::is_standard_layout<PipelineViewportSwizzleStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74751 
74752   template <>
74753   struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
74754   {
74755     using Type = PipelineViewportSwizzleStateCreateInfoNV;
74756   };
74757 
74758   struct PipelineViewportWScalingStateCreateInfoNV
74759   {
74760     static const bool allowDuplicate = false;
74761     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
74762 
74763 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74764     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {}) VULKAN_HPP_NOEXCEPT
74765     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( viewportCount_ ), pViewportWScalings( pViewportWScalings_ )
74766     {}
74767 
74768     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74769 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74770     PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74771     {
74772       *this = rhs;
74773     }
74774 
74775 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74776     PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ )
74777     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( static_cast<uint32_t>( viewportWScalings_.size() ) ), pViewportWScalings( viewportWScalings_.data() )
74778     {}
74779 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74780 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74781 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74782     PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74783     {
74784       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>( &rhs );
74785       return *this;
74786     }
74787 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74788     PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74789     {
74790       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportWScalingStateCreateInfoNV ) );
74791       return *this;
74792     }
74793 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74794     PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74795     {
74796       pNext = pNext_;
74797       return *this;
74798     }
74799 
setViewportWScalingEnableVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74800     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
74801     {
74802       viewportWScalingEnable = viewportWScalingEnable_;
74803       return *this;
74804     }
74805 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74806     PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
74807     {
74808       viewportCount = viewportCount_;
74809       return *this;
74810     }
74811 
setPViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74812     PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
74813     {
74814       pViewportWScalings = pViewportWScalings_;
74815       return *this;
74816     }
74817 
74818 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74819     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
74820     {
74821       viewportCount = static_cast<uint32_t>( viewportWScalings_.size() );
74822       pViewportWScalings = viewportWScalings_.data();
74823       return *this;
74824     }
74825 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74826 
74827 
operator VkPipelineViewportWScalingStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74828     operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74829     {
74830       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
74831     }
74832 
operator VkPipelineViewportWScalingStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74833     operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74834     {
74835       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
74836     }
74837 
74838 
74839 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74840     auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const& ) const = default;
74841 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74842     bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74843     {
74844       return ( sType == rhs.sType )
74845           && ( pNext == rhs.pNext )
74846           && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
74847           && ( viewportCount == rhs.viewportCount )
74848           && ( pViewportWScalings == rhs.pViewportWScalings );
74849     }
74850 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV74851     bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74852     {
74853       return !operator==( rhs );
74854     }
74855 #endif
74856 
74857 
74858 
74859   public:
74860     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
74861     const void* pNext = {};
74862     VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
74863     uint32_t viewportCount = {};
74864     const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {};
74865 
74866   };
74867   static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" );
74868   static_assert( std::is_standard_layout<PipelineViewportWScalingStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74869 
74870   template <>
74871   struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
74872   {
74873     using Type = PipelineViewportWScalingStateCreateInfoNV;
74874   };
74875 
74876 #ifdef VK_USE_PLATFORM_GGP
74877   struct PresentFrameTokenGGP
74878   {
74879     static const bool allowDuplicate = false;
74880     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
74881 
74882 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74883     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}) VULKAN_HPP_NOEXCEPT
74884     : frameToken( frameToken_ )
74885     {}
74886 
74887     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74888 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74889     PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
74890     {
74891       *this = rhs;
74892     }
74893 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74894 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74895     PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
74896     {
74897       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>( &rhs );
74898       return *this;
74899     }
74900 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74901     PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
74902     {
74903       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentFrameTokenGGP ) );
74904       return *this;
74905     }
74906 
setPNextVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74907     PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74908     {
74909       pNext = pNext_;
74910       return *this;
74911     }
74912 
setFrameTokenVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74913     PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
74914     {
74915       frameToken = frameToken_;
74916       return *this;
74917     }
74918 
74919 
operator VkPresentFrameTokenGGP const&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74920     operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT
74921     {
74922       return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
74923     }
74924 
operator VkPresentFrameTokenGGP&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74925     operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
74926     {
74927       return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
74928     }
74929 
74930 
74931 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74932     auto operator<=>( PresentFrameTokenGGP const& ) const = default;
74933 #else
operator ==VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74934     bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
74935     {
74936       return ( sType == rhs.sType )
74937           && ( pNext == rhs.pNext )
74938           && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 );
74939     }
74940 
operator !=VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP74941     bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
74942     {
74943       return !operator==( rhs );
74944     }
74945 #endif
74946 
74947 
74948 
74949   public:
74950     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
74951     const void* pNext = {};
74952     GgpFrameToken frameToken = {};
74953 
74954   };
74955   static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" );
74956   static_assert( std::is_standard_layout<PresentFrameTokenGGP>::value, "struct wrapper is not a standard layout!" );
74957 
74958   template <>
74959   struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
74960   {
74961     using Type = PresentFrameTokenGGP;
74962   };
74963 #endif /*VK_USE_PLATFORM_GGP*/
74964 
74965   struct RectLayerKHR
74966   {
74967 
74968 
74969 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR74970     VULKAN_HPP_CONSTEXPR RectLayerKHR(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {}) VULKAN_HPP_NOEXCEPT
74971     : offset( offset_ ), extent( extent_ ), layer( layer_ )
74972     {}
74973 
74974     VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74975 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR74976     RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74977     {
74978       *this = rhs;
74979     }
74980 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR74981     explicit RectLayerKHR( Rect2D const& rect2D, uint32_t layer_ = {} )
74982       : offset( rect2D.offset )
74983       , extent( rect2D.extent )
74984       , layer( layer_ )
74985     {}
74986 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74987 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR74988     RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74989     {
74990       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>( &rhs );
74991       return *this;
74992     }
74993 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR74994     RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74995     {
74996       memcpy( static_cast<void *>( this ), &rhs, sizeof( RectLayerKHR ) );
74997       return *this;
74998     }
74999 
setOffsetVULKAN_HPP_NAMESPACE::RectLayerKHR75000     RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
75001     {
75002       offset = offset_;
75003       return *this;
75004     }
75005 
setExtentVULKAN_HPP_NAMESPACE::RectLayerKHR75006     RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
75007     {
75008       extent = extent_;
75009       return *this;
75010     }
75011 
setLayerVULKAN_HPP_NAMESPACE::RectLayerKHR75012     RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
75013     {
75014       layer = layer_;
75015       return *this;
75016     }
75017 
75018 
operator VkRectLayerKHR const&VULKAN_HPP_NAMESPACE::RectLayerKHR75019     operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT
75020     {
75021       return *reinterpret_cast<const VkRectLayerKHR*>( this );
75022     }
75023 
operator VkRectLayerKHR&VULKAN_HPP_NAMESPACE::RectLayerKHR75024     operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
75025     {
75026       return *reinterpret_cast<VkRectLayerKHR*>( this );
75027     }
75028 
75029 
75030 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75031     auto operator<=>( RectLayerKHR const& ) const = default;
75032 #else
operator ==VULKAN_HPP_NAMESPACE::RectLayerKHR75033     bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75034     {
75035       return ( offset == rhs.offset )
75036           && ( extent == rhs.extent )
75037           && ( layer == rhs.layer );
75038     }
75039 
operator !=VULKAN_HPP_NAMESPACE::RectLayerKHR75040     bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75041     {
75042       return !operator==( rhs );
75043     }
75044 #endif
75045 
75046 
75047 
75048   public:
75049     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
75050     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
75051     uint32_t layer = {};
75052 
75053   };
75054   static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
75055   static_assert( std::is_standard_layout<RectLayerKHR>::value, "struct wrapper is not a standard layout!" );
75056 
75057   struct PresentRegionKHR
75058   {
75059 
75060 
75061 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR75062     VULKAN_HPP_CONSTEXPR PresentRegionKHR(uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {}) VULKAN_HPP_NOEXCEPT
75063     : rectangleCount( rectangleCount_ ), pRectangles( pRectangles_ )
75064     {}
75065 
75066     VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75067 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR75068     PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75069     {
75070       *this = rhs;
75071     }
75072 
75073 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR75074     PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
75075     : rectangleCount( static_cast<uint32_t>( rectangles_.size() ) ), pRectangles( rectangles_.data() )
75076     {}
75077 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75078 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75079 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR75080     PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75081     {
75082       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>( &rhs );
75083       return *this;
75084     }
75085 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR75086     PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75087     {
75088       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentRegionKHR ) );
75089       return *this;
75090     }
75091 
setRectangleCountVULKAN_HPP_NAMESPACE::PresentRegionKHR75092     PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
75093     {
75094       rectangleCount = rectangleCount_;
75095       return *this;
75096     }
75097 
setPRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR75098     PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT
75099     {
75100       pRectangles = pRectangles_;
75101       return *this;
75102     }
75103 
75104 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR75105     PresentRegionKHR & setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ ) VULKAN_HPP_NOEXCEPT
75106     {
75107       rectangleCount = static_cast<uint32_t>( rectangles_.size() );
75108       pRectangles = rectangles_.data();
75109       return *this;
75110     }
75111 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75112 
75113 
operator VkPresentRegionKHR const&VULKAN_HPP_NAMESPACE::PresentRegionKHR75114     operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT
75115     {
75116       return *reinterpret_cast<const VkPresentRegionKHR*>( this );
75117     }
75118 
operator VkPresentRegionKHR&VULKAN_HPP_NAMESPACE::PresentRegionKHR75119     operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
75120     {
75121       return *reinterpret_cast<VkPresentRegionKHR*>( this );
75122     }
75123 
75124 
75125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75126     auto operator<=>( PresentRegionKHR const& ) const = default;
75127 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionKHR75128     bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75129     {
75130       return ( rectangleCount == rhs.rectangleCount )
75131           && ( pRectangles == rhs.pRectangles );
75132     }
75133 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionKHR75134     bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75135     {
75136       return !operator==( rhs );
75137     }
75138 #endif
75139 
75140 
75141 
75142   public:
75143     uint32_t rectangleCount = {};
75144     const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {};
75145 
75146   };
75147   static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
75148   static_assert( std::is_standard_layout<PresentRegionKHR>::value, "struct wrapper is not a standard layout!" );
75149 
75150   struct PresentRegionsKHR
75151   {
75152     static const bool allowDuplicate = false;
75153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
75154 
75155 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR75156     VULKAN_HPP_CONSTEXPR PresentRegionsKHR(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
75157     : swapchainCount( swapchainCount_ ), pRegions( pRegions_ )
75158     {}
75159 
75160     VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75161 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR75162     PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75163     {
75164       *this = rhs;
75165     }
75166 
75167 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR75168     PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ )
75169     : swapchainCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
75170     {}
75171 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75172 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75173 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR75174     PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75175     {
75176       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>( &rhs );
75177       return *this;
75178     }
75179 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR75180     PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
75181     {
75182       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentRegionsKHR ) );
75183       return *this;
75184     }
75185 
setPNextVULKAN_HPP_NAMESPACE::PresentRegionsKHR75186     PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75187     {
75188       pNext = pNext_;
75189       return *this;
75190     }
75191 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentRegionsKHR75192     PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
75193     {
75194       swapchainCount = swapchainCount_;
75195       return *this;
75196     }
75197 
setPRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR75198     PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
75199     {
75200       pRegions = pRegions_;
75201       return *this;
75202     }
75203 
75204 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR75205     PresentRegionsKHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
75206     {
75207       swapchainCount = static_cast<uint32_t>( regions_.size() );
75208       pRegions = regions_.data();
75209       return *this;
75210     }
75211 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75212 
75213 
operator VkPresentRegionsKHR const&VULKAN_HPP_NAMESPACE::PresentRegionsKHR75214     operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT
75215     {
75216       return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
75217     }
75218 
operator VkPresentRegionsKHR&VULKAN_HPP_NAMESPACE::PresentRegionsKHR75219     operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
75220     {
75221       return *reinterpret_cast<VkPresentRegionsKHR*>( this );
75222     }
75223 
75224 
75225 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75226     auto operator<=>( PresentRegionsKHR const& ) const = default;
75227 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionsKHR75228     bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75229     {
75230       return ( sType == rhs.sType )
75231           && ( pNext == rhs.pNext )
75232           && ( swapchainCount == rhs.swapchainCount )
75233           && ( pRegions == rhs.pRegions );
75234     }
75235 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionsKHR75236     bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
75237     {
75238       return !operator==( rhs );
75239     }
75240 #endif
75241 
75242 
75243 
75244   public:
75245     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
75246     const void* pNext = {};
75247     uint32_t swapchainCount = {};
75248     const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {};
75249 
75250   };
75251   static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
75252   static_assert( std::is_standard_layout<PresentRegionsKHR>::value, "struct wrapper is not a standard layout!" );
75253 
75254   template <>
75255   struct CppType<StructureType, StructureType::ePresentRegionsKHR>
75256   {
75257     using Type = PresentRegionsKHR;
75258   };
75259 
75260   struct PresentTimeGOOGLE
75261   {
75262 
75263 
75264 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75265     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}) VULKAN_HPP_NOEXCEPT
75266     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ )
75267     {}
75268 
75269     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75270 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75271     PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
75272     {
75273       *this = rhs;
75274     }
75275 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75276 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75277     PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
75278     {
75279       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>( &rhs );
75280       return *this;
75281     }
75282 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75283     PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
75284     {
75285       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentTimeGOOGLE ) );
75286       return *this;
75287     }
75288 
setPresentIDVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75289     PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
75290     {
75291       presentID = presentID_;
75292       return *this;
75293     }
75294 
setDesiredPresentTimeVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75295     PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
75296     {
75297       desiredPresentTime = desiredPresentTime_;
75298       return *this;
75299     }
75300 
75301 
operator VkPresentTimeGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75302     operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT
75303     {
75304       return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
75305     }
75306 
operator VkPresentTimeGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75307     operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
75308     {
75309       return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
75310     }
75311 
75312 
75313 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75314     auto operator<=>( PresentTimeGOOGLE const& ) const = default;
75315 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75316     bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
75317     {
75318       return ( presentID == rhs.presentID )
75319           && ( desiredPresentTime == rhs.desiredPresentTime );
75320     }
75321 
operator !=VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE75322     bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
75323     {
75324       return !operator==( rhs );
75325     }
75326 #endif
75327 
75328 
75329 
75330   public:
75331     uint32_t presentID = {};
75332     uint64_t desiredPresentTime = {};
75333 
75334   };
75335   static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" );
75336   static_assert( std::is_standard_layout<PresentTimeGOOGLE>::value, "struct wrapper is not a standard layout!" );
75337 
75338   struct PresentTimesInfoGOOGLE
75339   {
75340     static const bool allowDuplicate = false;
75341     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
75342 
75343 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75344     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {}) VULKAN_HPP_NOEXCEPT
75345     : swapchainCount( swapchainCount_ ), pTimes( pTimes_ )
75346     {}
75347 
75348     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75349 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75350     PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
75351     {
75352       *this = rhs;
75353     }
75354 
75355 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75356     PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ )
75357     : swapchainCount( static_cast<uint32_t>( times_.size() ) ), pTimes( times_.data() )
75358     {}
75359 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75360 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75361 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75362     PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
75363     {
75364       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>( &rhs );
75365       return *this;
75366     }
75367 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75368     PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
75369     {
75370       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentTimesInfoGOOGLE ) );
75371       return *this;
75372     }
75373 
setPNextVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75374     PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75375     {
75376       pNext = pNext_;
75377       return *this;
75378     }
75379 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75380     PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
75381     {
75382       swapchainCount = swapchainCount_;
75383       return *this;
75384     }
75385 
setPTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75386     PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT
75387     {
75388       pTimes = pTimes_;
75389       return *this;
75390     }
75391 
75392 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75393     PresentTimesInfoGOOGLE & setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ ) VULKAN_HPP_NOEXCEPT
75394     {
75395       swapchainCount = static_cast<uint32_t>( times_.size() );
75396       pTimes = times_.data();
75397       return *this;
75398     }
75399 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75400 
75401 
operator VkPresentTimesInfoGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75402     operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT
75403     {
75404       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
75405     }
75406 
operator VkPresentTimesInfoGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75407     operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
75408     {
75409       return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
75410     }
75411 
75412 
75413 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75414     auto operator<=>( PresentTimesInfoGOOGLE const& ) const = default;
75415 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75416     bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
75417     {
75418       return ( sType == rhs.sType )
75419           && ( pNext == rhs.pNext )
75420           && ( swapchainCount == rhs.swapchainCount )
75421           && ( pTimes == rhs.pTimes );
75422     }
75423 
operator !=VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE75424     bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
75425     {
75426       return !operator==( rhs );
75427     }
75428 #endif
75429 
75430 
75431 
75432   public:
75433     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
75434     const void* pNext = {};
75435     uint32_t swapchainCount = {};
75436     const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {};
75437 
75438   };
75439   static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" );
75440   static_assert( std::is_standard_layout<PresentTimesInfoGOOGLE>::value, "struct wrapper is not a standard layout!" );
75441 
75442   template <>
75443   struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
75444   {
75445     using Type = PresentTimesInfoGOOGLE;
75446   };
75447 
75448   struct ProtectedSubmitInfo
75449   {
75450     static const bool allowDuplicate = false;
75451     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
75452 
75453 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75454     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo(VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}) VULKAN_HPP_NOEXCEPT
75455     : protectedSubmit( protectedSubmit_ )
75456     {}
75457 
75458     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75459 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75460     ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75461     {
75462       *this = rhs;
75463     }
75464 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75465 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75466     ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75467     {
75468       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>( &rhs );
75469       return *this;
75470     }
75471 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75472     ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75473     {
75474       memcpy( static_cast<void *>( this ), &rhs, sizeof( ProtectedSubmitInfo ) );
75475       return *this;
75476     }
75477 
setPNextVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75478     ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75479     {
75480       pNext = pNext_;
75481       return *this;
75482     }
75483 
setProtectedSubmitVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75484     ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
75485     {
75486       protectedSubmit = protectedSubmit_;
75487       return *this;
75488     }
75489 
75490 
operator VkProtectedSubmitInfo const&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75491     operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
75492     {
75493       return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
75494     }
75495 
operator VkProtectedSubmitInfo&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75496     operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
75497     {
75498       return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
75499     }
75500 
75501 
75502 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75503     auto operator<=>( ProtectedSubmitInfo const& ) const = default;
75504 #else
operator ==VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75505     bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75506     {
75507       return ( sType == rhs.sType )
75508           && ( pNext == rhs.pNext )
75509           && ( protectedSubmit == rhs.protectedSubmit );
75510     }
75511 
operator !=VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo75512     bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75513     {
75514       return !operator==( rhs );
75515     }
75516 #endif
75517 
75518 
75519 
75520   public:
75521     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
75522     const void* pNext = {};
75523     VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
75524 
75525   };
75526   static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" );
75527   static_assert( std::is_standard_layout<ProtectedSubmitInfo>::value, "struct wrapper is not a standard layout!" );
75528 
75529   template <>
75530   struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
75531   {
75532     using Type = ProtectedSubmitInfo;
75533   };
75534 
75535   struct QueryPoolPerformanceQueryCreateInfoINTEL
75536   {
75537     static const bool allowDuplicate = false;
75538     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
75539 
75540 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75541     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual) VULKAN_HPP_NOEXCEPT
75542     : performanceCountersSampling( performanceCountersSampling_ )
75543     {}
75544 
75545     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75546 
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75547     QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
75548     {
75549       *this = rhs;
75550     }
75551 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75552 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75553     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
75554     {
75555       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs );
75556       return *this;
75557     }
75558 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75559     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
75560     {
75561       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) );
75562       return *this;
75563     }
75564 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75565     QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75566     {
75567       pNext = pNext_;
75568       return *this;
75569     }
75570 
setPerformanceCountersSamplingVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75571     QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
75572     {
75573       performanceCountersSampling = performanceCountersSampling_;
75574       return *this;
75575     }
75576 
75577 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75578     operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
75579     {
75580       return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
75581     }
75582 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75583     operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
75584     {
75585       return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
75586     }
75587 
75588 
75589 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75590     auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const& ) const = default;
75591 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75592     bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
75593     {
75594       return ( sType == rhs.sType )
75595           && ( pNext == rhs.pNext )
75596           && ( performanceCountersSampling == rhs.performanceCountersSampling );
75597     }
75598 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL75599     bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
75600     {
75601       return !operator==( rhs );
75602     }
75603 #endif
75604 
75605 
75606 
75607   public:
75608     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
75609     const void* pNext = {};
75610     VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
75611 
75612   };
75613   static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), "struct and wrapper have different size!" );
75614   static_assert( std::is_standard_layout<QueryPoolPerformanceQueryCreateInfoINTEL>::value, "struct wrapper is not a standard layout!" );
75615 
75616   template <>
75617   struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
75618   {
75619     using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
75620   };
75621   using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
75622 
75623   struct QueueFamilyCheckpointPropertiesNV
75624   {
75625     static const bool allowDuplicate = false;
75626     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
75627 
75628 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75629     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV(VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT
75630     : checkpointExecutionStageMask( checkpointExecutionStageMask_ )
75631     {}
75632 
75633     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75634 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75635     QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
75636     {
75637       *this = rhs;
75638     }
75639 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75640 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75641     QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
75642     {
75643       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>( &rhs );
75644       return *this;
75645     }
75646 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75647     QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
75648     {
75649       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyCheckpointPropertiesNV ) );
75650       return *this;
75651     }
75652 
75653 
operator VkQueueFamilyCheckpointPropertiesNV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75654     operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
75655     {
75656       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
75657     }
75658 
operator VkQueueFamilyCheckpointPropertiesNV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75659     operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
75660     {
75661       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
75662     }
75663 
75664 
75665 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75666     auto operator<=>( QueueFamilyCheckpointPropertiesNV const& ) const = default;
75667 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75668     bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75669     {
75670       return ( sType == rhs.sType )
75671           && ( pNext == rhs.pNext )
75672           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
75673     }
75674 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV75675     bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75676     {
75677       return !operator==( rhs );
75678     }
75679 #endif
75680 
75681 
75682 
75683   public:
75684     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
75685     void* pNext = {};
75686     VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
75687 
75688   };
75689   static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" );
75690   static_assert( std::is_standard_layout<QueueFamilyCheckpointPropertiesNV>::value, "struct wrapper is not a standard layout!" );
75691 
75692   template <>
75693   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
75694   {
75695     using Type = QueueFamilyCheckpointPropertiesNV;
75696   };
75697 
75698   struct RenderPassAttachmentBeginInfo
75699   {
75700     static const bool allowDuplicate = false;
75701     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
75702 
75703 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75704     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}) VULKAN_HPP_NOEXCEPT
75705     : attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ )
75706     {}
75707 
75708     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75709 
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75710     RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75711     {
75712       *this = rhs;
75713     }
75714 
75715 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75716     RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ )
75717     : attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() )
75718     {}
75719 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75720 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75721 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75722     RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75723     {
75724       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>( &rhs );
75725       return *this;
75726     }
75727 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75728     RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75729     {
75730       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassAttachmentBeginInfo ) );
75731       return *this;
75732     }
75733 
setPNextVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75734     RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75735     {
75736       pNext = pNext_;
75737       return *this;
75738     }
75739 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75740     RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
75741     {
75742       attachmentCount = attachmentCount_;
75743       return *this;
75744     }
75745 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75746     RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
75747     {
75748       pAttachments = pAttachments_;
75749       return *this;
75750     }
75751 
75752 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75753     RenderPassAttachmentBeginInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
75754     {
75755       attachmentCount = static_cast<uint32_t>( attachments_.size() );
75756       pAttachments = attachments_.data();
75757       return *this;
75758     }
75759 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75760 
75761 
operator VkRenderPassAttachmentBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75762     operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT
75763     {
75764       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>( this );
75765     }
75766 
operator VkRenderPassAttachmentBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75767     operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
75768     {
75769       return *reinterpret_cast<VkRenderPassAttachmentBeginInfo*>( this );
75770     }
75771 
75772 
75773 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75774     auto operator<=>( RenderPassAttachmentBeginInfo const& ) const = default;
75775 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75776     bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75777     {
75778       return ( sType == rhs.sType )
75779           && ( pNext == rhs.pNext )
75780           && ( attachmentCount == rhs.attachmentCount )
75781           && ( pAttachments == rhs.pAttachments );
75782     }
75783 
operator !=VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo75784     bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75785     {
75786       return !operator==( rhs );
75787     }
75788 #endif
75789 
75790 
75791 
75792   public:
75793     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
75794     const void* pNext = {};
75795     uint32_t attachmentCount = {};
75796     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
75797 
75798   };
75799   static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" );
75800   static_assert( std::is_standard_layout<RenderPassAttachmentBeginInfo>::value, "struct wrapper is not a standard layout!" );
75801 
75802   template <>
75803   struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
75804   {
75805     using Type = RenderPassAttachmentBeginInfo;
75806   };
75807   using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
75808 
75809   struct RenderPassFragmentDensityMapCreateInfoEXT
75810   {
75811     static const bool allowDuplicate = false;
75812     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
75813 
75814 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75815     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT(VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {}) VULKAN_HPP_NOEXCEPT
75816     : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
75817     {}
75818 
75819     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75820 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75821     RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75822     {
75823       *this = rhs;
75824     }
75825 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75826 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75827     RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75828     {
75829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs );
75830       return *this;
75831     }
75832 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75833     RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75834     {
75835       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) );
75836       return *this;
75837     }
75838 
setPNextVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75839     RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75840     {
75841       pNext = pNext_;
75842       return *this;
75843     }
75844 
setFragmentDensityMapAttachmentVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75845     RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
75846     {
75847       fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
75848       return *this;
75849     }
75850 
75851 
operator VkRenderPassFragmentDensityMapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75852     operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75853     {
75854       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
75855     }
75856 
operator VkRenderPassFragmentDensityMapCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75857     operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75858     {
75859       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
75860     }
75861 
75862 
75863 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75864     auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const& ) const = default;
75865 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75866     bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75867     {
75868       return ( sType == rhs.sType )
75869           && ( pNext == rhs.pNext )
75870           && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
75871     }
75872 
operator !=VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT75873     bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75874     {
75875       return !operator==( rhs );
75876     }
75877 #endif
75878 
75879 
75880 
75881   public:
75882     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
75883     const void* pNext = {};
75884     VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
75885 
75886   };
75887   static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" );
75888   static_assert( std::is_standard_layout<RenderPassFragmentDensityMapCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75889 
75890   template <>
75891   struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
75892   {
75893     using Type = RenderPassFragmentDensityMapCreateInfoEXT;
75894   };
75895 
75896   struct RenderPassInputAttachmentAspectCreateInfo
75897   {
75898     static const bool allowDuplicate = false;
75899     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
75900 
75901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75902     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo(uint32_t aspectReferenceCount_ = {}, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {}) VULKAN_HPP_NOEXCEPT
75903     : aspectReferenceCount( aspectReferenceCount_ ), pAspectReferences( pAspectReferences_ )
75904     {}
75905 
75906     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75907 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75908     RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75909     {
75910       *this = rhs;
75911     }
75912 
75913 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75914     RenderPassInputAttachmentAspectCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ )
75915     : aspectReferenceCount( static_cast<uint32_t>( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() )
75916     {}
75917 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75918 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75919 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75920     RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75921     {
75922       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>( &rhs );
75923       return *this;
75924     }
75925 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75926     RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75927     {
75928       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassInputAttachmentAspectCreateInfo ) );
75929       return *this;
75930     }
75931 
setPNextVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75932     RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75933     {
75934       pNext = pNext_;
75935       return *this;
75936     }
75937 
setAspectReferenceCountVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75938     RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
75939     {
75940       aspectReferenceCount = aspectReferenceCount_;
75941       return *this;
75942     }
75943 
setPAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75944     RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
75945     {
75946       pAspectReferences = pAspectReferences_;
75947       return *this;
75948     }
75949 
75950 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75951     RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT
75952     {
75953       aspectReferenceCount = static_cast<uint32_t>( aspectReferences_.size() );
75954       pAspectReferences = aspectReferences_.data();
75955       return *this;
75956     }
75957 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75958 
75959 
operator VkRenderPassInputAttachmentAspectCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75960     operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT
75961     {
75962       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
75963     }
75964 
operator VkRenderPassInputAttachmentAspectCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75965     operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
75966     {
75967       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
75968     }
75969 
75970 
75971 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75972     auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const& ) const = default;
75973 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75974     bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75975     {
75976       return ( sType == rhs.sType )
75977           && ( pNext == rhs.pNext )
75978           && ( aspectReferenceCount == rhs.aspectReferenceCount )
75979           && ( pAspectReferences == rhs.pAspectReferences );
75980     }
75981 
operator !=VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo75982     bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75983     {
75984       return !operator==( rhs );
75985     }
75986 #endif
75987 
75988 
75989 
75990   public:
75991     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
75992     const void* pNext = {};
75993     uint32_t aspectReferenceCount = {};
75994     const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {};
75995 
75996   };
75997   static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" );
75998   static_assert( std::is_standard_layout<RenderPassInputAttachmentAspectCreateInfo>::value, "struct wrapper is not a standard layout!" );
75999 
76000   template <>
76001   struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
76002   {
76003     using Type = RenderPassInputAttachmentAspectCreateInfo;
76004   };
76005   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
76006 
76007   struct RenderPassMultiviewCreateInfo
76008   {
76009     static const bool allowDuplicate = false;
76010     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
76011 
76012 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76013     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
76014     : subpassCount( subpassCount_ ), pViewMasks( pViewMasks_ ), dependencyCount( dependencyCount_ ), pViewOffsets( pViewOffsets_ ), correlationMaskCount( correlationMaskCount_ ), pCorrelationMasks( pCorrelationMasks_ )
76015     {}
76016 
76017     VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76018 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76019     RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76020     {
76021       *this = rhs;
76022     }
76023 
76024 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76025     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_ = {} )
76026     : 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() )
76027     {}
76028 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76029 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76030 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76031     RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76032     {
76033       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>( &rhs );
76034       return *this;
76035     }
76036 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76037     RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76038     {
76039       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassMultiviewCreateInfo ) );
76040       return *this;
76041     }
76042 
setPNextVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76043     RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76044     {
76045       pNext = pNext_;
76046       return *this;
76047     }
76048 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76049     RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
76050     {
76051       subpassCount = subpassCount_;
76052       return *this;
76053     }
76054 
setPViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76055     RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT
76056     {
76057       pViewMasks = pViewMasks_;
76058       return *this;
76059     }
76060 
76061 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76062     RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
76063     {
76064       subpassCount = static_cast<uint32_t>( viewMasks_.size() );
76065       pViewMasks = viewMasks_.data();
76066       return *this;
76067     }
76068 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76069 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76070     RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
76071     {
76072       dependencyCount = dependencyCount_;
76073       return *this;
76074     }
76075 
setPViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76076     RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
76077     {
76078       pViewOffsets = pViewOffsets_;
76079       return *this;
76080     }
76081 
76082 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76083     RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
76084     {
76085       dependencyCount = static_cast<uint32_t>( viewOffsets_.size() );
76086       pViewOffsets = viewOffsets_.data();
76087       return *this;
76088     }
76089 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76090 
setCorrelationMaskCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76091     RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
76092     {
76093       correlationMaskCount = correlationMaskCount_;
76094       return *this;
76095     }
76096 
setPCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76097     RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
76098     {
76099       pCorrelationMasks = pCorrelationMasks_;
76100       return *this;
76101     }
76102 
76103 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76104     RenderPassMultiviewCreateInfo & setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
76105     {
76106       correlationMaskCount = static_cast<uint32_t>( correlationMasks_.size() );
76107       pCorrelationMasks = correlationMasks_.data();
76108       return *this;
76109     }
76110 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76111 
76112 
operator VkRenderPassMultiviewCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76113     operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
76114     {
76115       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
76116     }
76117 
operator VkRenderPassMultiviewCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76118     operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
76119     {
76120       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
76121     }
76122 
76123 
76124 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76125     auto operator<=>( RenderPassMultiviewCreateInfo const& ) const = default;
76126 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76127     bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76128     {
76129       return ( sType == rhs.sType )
76130           && ( pNext == rhs.pNext )
76131           && ( subpassCount == rhs.subpassCount )
76132           && ( pViewMasks == rhs.pViewMasks )
76133           && ( dependencyCount == rhs.dependencyCount )
76134           && ( pViewOffsets == rhs.pViewOffsets )
76135           && ( correlationMaskCount == rhs.correlationMaskCount )
76136           && ( pCorrelationMasks == rhs.pCorrelationMasks );
76137     }
76138 
operator !=VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo76139     bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76140     {
76141       return !operator==( rhs );
76142     }
76143 #endif
76144 
76145 
76146 
76147   public:
76148     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
76149     const void* pNext = {};
76150     uint32_t subpassCount = {};
76151     const uint32_t* pViewMasks = {};
76152     uint32_t dependencyCount = {};
76153     const int32_t* pViewOffsets = {};
76154     uint32_t correlationMaskCount = {};
76155     const uint32_t* pCorrelationMasks = {};
76156 
76157   };
76158   static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" );
76159   static_assert( std::is_standard_layout<RenderPassMultiviewCreateInfo>::value, "struct wrapper is not a standard layout!" );
76160 
76161   template <>
76162   struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
76163   {
76164     using Type = RenderPassMultiviewCreateInfo;
76165   };
76166   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
76167 
76168   struct SubpassSampleLocationsEXT
76169   {
76170 
76171 
76172 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76173     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT(uint32_t subpassIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
76174     : subpassIndex( subpassIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
76175     {}
76176 
76177     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76178 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76179     SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76180     {
76181       *this = rhs;
76182     }
76183 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76184 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76185     SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76186     {
76187       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>( &rhs );
76188       return *this;
76189     }
76190 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76191     SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76192     {
76193       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassSampleLocationsEXT ) );
76194       return *this;
76195     }
76196 
setSubpassIndexVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76197     SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
76198     {
76199       subpassIndex = subpassIndex_;
76200       return *this;
76201     }
76202 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76203     SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
76204     {
76205       sampleLocationsInfo = sampleLocationsInfo_;
76206       return *this;
76207     }
76208 
76209 
operator VkSubpassSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76210     operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
76211     {
76212       return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
76213     }
76214 
operator VkSubpassSampleLocationsEXT&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76215     operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
76216     {
76217       return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
76218     }
76219 
76220 
76221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76222     auto operator<=>( SubpassSampleLocationsEXT const& ) const = default;
76223 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76224     bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
76225     {
76226       return ( subpassIndex == rhs.subpassIndex )
76227           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
76228     }
76229 
operator !=VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT76230     bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
76231     {
76232       return !operator==( rhs );
76233     }
76234 #endif
76235 
76236 
76237 
76238   public:
76239     uint32_t subpassIndex = {};
76240     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
76241 
76242   };
76243   static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" );
76244   static_assert( std::is_standard_layout<SubpassSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
76245 
76246   struct RenderPassSampleLocationsBeginInfoEXT
76247   {
76248     static const bool allowDuplicate = false;
76249     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
76250 
76251 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76252     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
76253     : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ), pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ), postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ), pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
76254     {}
76255 
76256     VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76257 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76258     RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76259     {
76260       *this = rhs;
76261     }
76262 
76263 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76264     RenderPassSampleLocationsBeginInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ = {} )
76265     : attachmentInitialSampleLocationsCount( static_cast<uint32_t>( attachmentInitialSampleLocations_.size() ) ), pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ), postSubpassSampleLocationsCount( static_cast<uint32_t>( postSubpassSampleLocations_.size() ) ), pPostSubpassSampleLocations( postSubpassSampleLocations_.data() )
76266     {}
76267 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76268 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76269 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76270     RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76271     {
76272       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>( &rhs );
76273       return *this;
76274     }
76275 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76276     RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76277     {
76278       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassSampleLocationsBeginInfoEXT ) );
76279       return *this;
76280     }
76281 
setPNextVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76282     RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76283     {
76284       pNext = pNext_;
76285       return *this;
76286     }
76287 
setAttachmentInitialSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76288     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
76289     {
76290       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
76291       return *this;
76292     }
76293 
setPAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76294     RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
76295     {
76296       pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
76297       return *this;
76298     }
76299 
76300 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76301     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
76302     {
76303       attachmentInitialSampleLocationsCount = static_cast<uint32_t>( attachmentInitialSampleLocations_.size() );
76304       pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
76305       return *this;
76306     }
76307 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76308 
setPostSubpassSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76309     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
76310     {
76311       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
76312       return *this;
76313     }
76314 
setPPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76315     RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
76316     {
76317       pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
76318       return *this;
76319     }
76320 
76321 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76322     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
76323     {
76324       postSubpassSampleLocationsCount = static_cast<uint32_t>( postSubpassSampleLocations_.size() );
76325       pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
76326       return *this;
76327     }
76328 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76329 
76330 
operator VkRenderPassSampleLocationsBeginInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76331     operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
76332     {
76333       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
76334     }
76335 
operator VkRenderPassSampleLocationsBeginInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76336     operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
76337     {
76338       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
76339     }
76340 
76341 
76342 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76343     auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const& ) const = default;
76344 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76345     bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
76346     {
76347       return ( sType == rhs.sType )
76348           && ( pNext == rhs.pNext )
76349           && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
76350           && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
76351           && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
76352           && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
76353     }
76354 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT76355     bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
76356     {
76357       return !operator==( rhs );
76358     }
76359 #endif
76360 
76361 
76362 
76363   public:
76364     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
76365     const void* pNext = {};
76366     uint32_t attachmentInitialSampleLocationsCount = {};
76367     const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {};
76368     uint32_t postSubpassSampleLocationsCount = {};
76369     const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {};
76370 
76371   };
76372   static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" );
76373   static_assert( std::is_standard_layout<RenderPassSampleLocationsBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
76374 
76375   template <>
76376   struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
76377   {
76378     using Type = RenderPassSampleLocationsBeginInfoEXT;
76379   };
76380 
76381   struct RenderPassTransformBeginInfoQCOM
76382   {
76383     static const bool allowDuplicate = false;
76384     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
76385 
76386 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76387     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT
76388     : transform( transform_ )
76389     {}
76390 
76391     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76392 
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76393     RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
76394     {
76395       *this = rhs;
76396     }
76397 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76398 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76399     RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
76400     {
76401       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>( &rhs );
76402       return *this;
76403     }
76404 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76405     RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
76406     {
76407       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassTransformBeginInfoQCOM ) );
76408       return *this;
76409     }
76410 
setPNextVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76411     RenderPassTransformBeginInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
76412     {
76413       pNext = pNext_;
76414       return *this;
76415     }
76416 
setTransformVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76417     RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
76418     {
76419       transform = transform_;
76420       return *this;
76421     }
76422 
76423 
operator VkRenderPassTransformBeginInfoQCOM const&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76424     operator VkRenderPassTransformBeginInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
76425     {
76426       return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>( this );
76427     }
76428 
operator VkRenderPassTransformBeginInfoQCOM&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76429     operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
76430     {
76431       return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>( this );
76432     }
76433 
76434 
76435 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76436     auto operator<=>( RenderPassTransformBeginInfoQCOM const& ) const = default;
76437 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76438     bool operator==( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
76439     {
76440       return ( sType == rhs.sType )
76441           && ( pNext == rhs.pNext )
76442           && ( transform == rhs.transform );
76443     }
76444 
operator !=VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM76445     bool operator!=( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
76446     {
76447       return !operator==( rhs );
76448     }
76449 #endif
76450 
76451 
76452 
76453   public:
76454     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
76455     void* pNext = {};
76456     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
76457 
76458   };
76459   static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), "struct and wrapper have different size!" );
76460   static_assert( std::is_standard_layout<RenderPassTransformBeginInfoQCOM>::value, "struct wrapper is not a standard layout!" );
76461 
76462   template <>
76463   struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
76464   {
76465     using Type = RenderPassTransformBeginInfoQCOM;
76466   };
76467 
76468   struct SamplerCustomBorderColorCreateInfoEXT
76469   {
76470     static const bool allowDuplicate = false;
76471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
76472 
76473 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76474     SamplerCustomBorderColorCreateInfoEXT(VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
76475     : customBorderColor( customBorderColor_ ), format( format_ )
76476     {}
76477 
76478     SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76479 
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76480     SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76481     {
76482       *this = rhs;
76483     }
76484 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76485 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76486     SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76487     {
76488       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>( &rhs );
76489       return *this;
76490     }
76491 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76492     SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76493     {
76494       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerCustomBorderColorCreateInfoEXT ) );
76495       return *this;
76496     }
76497 
setPNextVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76498     SamplerCustomBorderColorCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76499     {
76500       pNext = pNext_;
76501       return *this;
76502     }
76503 
setCustomBorderColorVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76504     SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
76505     {
76506       customBorderColor = customBorderColor_;
76507       return *this;
76508     }
76509 
setFormatVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76510     SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
76511     {
76512       format = format_;
76513       return *this;
76514     }
76515 
76516 
operator VkSamplerCustomBorderColorCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76517     operator VkSamplerCustomBorderColorCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
76518     {
76519       return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>( this );
76520     }
76521 
operator VkSamplerCustomBorderColorCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT76522     operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
76523     {
76524       return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>( this );
76525     }
76526 
76527 
76528 
76529 
76530   public:
76531     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
76532     const void* pNext = {};
76533     VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
76534     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
76535 
76536   };
76537   static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), "struct and wrapper have different size!" );
76538   static_assert( std::is_standard_layout<SamplerCustomBorderColorCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
76539 
76540   template <>
76541   struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
76542   {
76543     using Type = SamplerCustomBorderColorCreateInfoEXT;
76544   };
76545 
76546   struct SamplerReductionModeCreateInfo
76547   {
76548     static const bool allowDuplicate = false;
76549     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
76550 
76551 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76552     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo(VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage) VULKAN_HPP_NOEXCEPT
76553     : reductionMode( reductionMode_ )
76554     {}
76555 
76556     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76557 
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76558     SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76559     {
76560       *this = rhs;
76561     }
76562 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76563 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76564     SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76565     {
76566       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>( &rhs );
76567       return *this;
76568     }
76569 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76570     SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76571     {
76572       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerReductionModeCreateInfo ) );
76573       return *this;
76574     }
76575 
setPNextVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76576     SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76577     {
76578       pNext = pNext_;
76579       return *this;
76580     }
76581 
setReductionModeVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76582     SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
76583     {
76584       reductionMode = reductionMode_;
76585       return *this;
76586     }
76587 
76588 
operator VkSamplerReductionModeCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76589     operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
76590     {
76591       return *reinterpret_cast<const VkSamplerReductionModeCreateInfo*>( this );
76592     }
76593 
operator VkSamplerReductionModeCreateInfo&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76594     operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
76595     {
76596       return *reinterpret_cast<VkSamplerReductionModeCreateInfo*>( this );
76597     }
76598 
76599 
76600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76601     auto operator<=>( SamplerReductionModeCreateInfo const& ) const = default;
76602 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76603     bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76604     {
76605       return ( sType == rhs.sType )
76606           && ( pNext == rhs.pNext )
76607           && ( reductionMode == rhs.reductionMode );
76608     }
76609 
operator !=VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo76610     bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76611     {
76612       return !operator==( rhs );
76613     }
76614 #endif
76615 
76616 
76617 
76618   public:
76619     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
76620     const void* pNext = {};
76621     VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
76622 
76623   };
76624   static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" );
76625   static_assert( std::is_standard_layout<SamplerReductionModeCreateInfo>::value, "struct wrapper is not a standard layout!" );
76626 
76627   template <>
76628   struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
76629   {
76630     using Type = SamplerReductionModeCreateInfo;
76631   };
76632   using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
76633 
76634   struct SamplerYcbcrConversionImageFormatProperties
76635   {
76636     static const bool allowDuplicate = false;
76637     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
76638 
76639 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76640     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties(uint32_t combinedImageSamplerDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
76641     : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
76642     {}
76643 
76644     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76645 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76646     SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
76647     {
76648       *this = rhs;
76649     }
76650 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76651 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76652     SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
76653     {
76654       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>( &rhs );
76655       return *this;
76656     }
76657 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76658     SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
76659     {
76660       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionImageFormatProperties ) );
76661       return *this;
76662     }
76663 
76664 
operator VkSamplerYcbcrConversionImageFormatProperties const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76665     operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
76666     {
76667       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
76668     }
76669 
operator VkSamplerYcbcrConversionImageFormatProperties&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76670     operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
76671     {
76672       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
76673     }
76674 
76675 
76676 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76677     auto operator<=>( SamplerYcbcrConversionImageFormatProperties const& ) const = default;
76678 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76679     bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
76680     {
76681       return ( sType == rhs.sType )
76682           && ( pNext == rhs.pNext )
76683           && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
76684     }
76685 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties76686     bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
76687     {
76688       return !operator==( rhs );
76689     }
76690 #endif
76691 
76692 
76693 
76694   public:
76695     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
76696     void* pNext = {};
76697     uint32_t combinedImageSamplerDescriptorCount = {};
76698 
76699   };
76700   static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" );
76701   static_assert( std::is_standard_layout<SamplerYcbcrConversionImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
76702 
76703   template <>
76704   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
76705   {
76706     using Type = SamplerYcbcrConversionImageFormatProperties;
76707   };
76708   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
76709 
76710   struct SamplerYcbcrConversionInfo
76711   {
76712     static const bool allowDuplicate = false;
76713     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
76714 
76715 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76716     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {}) VULKAN_HPP_NOEXCEPT
76717     : conversion( conversion_ )
76718     {}
76719 
76720     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76721 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76722     SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76723     {
76724       *this = rhs;
76725     }
76726 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76727 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76728     SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76729     {
76730       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>( &rhs );
76731       return *this;
76732     }
76733 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76734     SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76735     {
76736       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionInfo ) );
76737       return *this;
76738     }
76739 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76740     SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76741     {
76742       pNext = pNext_;
76743       return *this;
76744     }
76745 
setConversionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76746     SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
76747     {
76748       conversion = conversion_;
76749       return *this;
76750     }
76751 
76752 
operator VkSamplerYcbcrConversionInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76753     operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT
76754     {
76755       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
76756     }
76757 
operator VkSamplerYcbcrConversionInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76758     operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
76759     {
76760       return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
76761     }
76762 
76763 
76764 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76765     auto operator<=>( SamplerYcbcrConversionInfo const& ) const = default;
76766 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76767     bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76768     {
76769       return ( sType == rhs.sType )
76770           && ( pNext == rhs.pNext )
76771           && ( conversion == rhs.conversion );
76772     }
76773 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo76774     bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76775     {
76776       return !operator==( rhs );
76777     }
76778 #endif
76779 
76780 
76781 
76782   public:
76783     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
76784     const void* pNext = {};
76785     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
76786 
76787   };
76788   static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" );
76789   static_assert( std::is_standard_layout<SamplerYcbcrConversionInfo>::value, "struct wrapper is not a standard layout!" );
76790 
76791   template <>
76792   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
76793   {
76794     using Type = SamplerYcbcrConversionInfo;
76795   };
76796   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
76797 
76798   struct SemaphoreTypeCreateInfo
76799   {
76800     static const bool allowDuplicate = false;
76801     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
76802 
76803 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76804     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, uint64_t initialValue_ = {}) VULKAN_HPP_NOEXCEPT
76805     : semaphoreType( semaphoreType_ ), initialValue( initialValue_ )
76806     {}
76807 
76808     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76809 
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76810     SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76811     {
76812       *this = rhs;
76813     }
76814 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76815 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76816     SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76817     {
76818       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>( &rhs );
76819       return *this;
76820     }
76821 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76822     SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76823     {
76824       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreTypeCreateInfo ) );
76825       return *this;
76826     }
76827 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76828     SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76829     {
76830       pNext = pNext_;
76831       return *this;
76832     }
76833 
setSemaphoreTypeVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76834     SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
76835     {
76836       semaphoreType = semaphoreType_;
76837       return *this;
76838     }
76839 
setInitialValueVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76840     SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
76841     {
76842       initialValue = initialValue_;
76843       return *this;
76844     }
76845 
76846 
operator VkSemaphoreTypeCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76847     operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
76848     {
76849       return *reinterpret_cast<const VkSemaphoreTypeCreateInfo*>( this );
76850     }
76851 
operator VkSemaphoreTypeCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76852     operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
76853     {
76854       return *reinterpret_cast<VkSemaphoreTypeCreateInfo*>( this );
76855     }
76856 
76857 
76858 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76859     auto operator<=>( SemaphoreTypeCreateInfo const& ) const = default;
76860 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76861     bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76862     {
76863       return ( sType == rhs.sType )
76864           && ( pNext == rhs.pNext )
76865           && ( semaphoreType == rhs.semaphoreType )
76866           && ( initialValue == rhs.initialValue );
76867     }
76868 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo76869     bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76870     {
76871       return !operator==( rhs );
76872     }
76873 #endif
76874 
76875 
76876 
76877   public:
76878     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
76879     const void* pNext = {};
76880     VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
76881     uint64_t initialValue = {};
76882 
76883   };
76884   static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" );
76885   static_assert( std::is_standard_layout<SemaphoreTypeCreateInfo>::value, "struct wrapper is not a standard layout!" );
76886 
76887   template <>
76888   struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
76889   {
76890     using Type = SemaphoreTypeCreateInfo;
76891   };
76892   using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
76893 
76894   struct SetStateFlagsIndirectCommandNV
76895   {
76896 
76897 
76898 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76899     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV(uint32_t data_ = {}) VULKAN_HPP_NOEXCEPT
76900     : data( data_ )
76901     {}
76902 
76903     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76904 
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76905     SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
76906     {
76907       *this = rhs;
76908     }
76909 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76910 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76911     SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
76912     {
76913       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>( &rhs );
76914       return *this;
76915     }
76916 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76917     SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
76918     {
76919       memcpy( static_cast<void *>( this ), &rhs, sizeof( SetStateFlagsIndirectCommandNV ) );
76920       return *this;
76921     }
76922 
setDataVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76923     SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
76924     {
76925       data = data_;
76926       return *this;
76927     }
76928 
76929 
operator VkSetStateFlagsIndirectCommandNV const&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76930     operator VkSetStateFlagsIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
76931     {
76932       return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV*>( this );
76933     }
76934 
operator VkSetStateFlagsIndirectCommandNV&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76935     operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
76936     {
76937       return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV*>( this );
76938     }
76939 
76940 
76941 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76942     auto operator<=>( SetStateFlagsIndirectCommandNV const& ) const = default;
76943 #else
operator ==VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76944     bool operator==( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76945     {
76946       return ( data == rhs.data );
76947     }
76948 
operator !=VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV76949     bool operator!=( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76950     {
76951       return !operator==( rhs );
76952     }
76953 #endif
76954 
76955 
76956 
76957   public:
76958     uint32_t data = {};
76959 
76960   };
76961   static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), "struct and wrapper have different size!" );
76962   static_assert( std::is_standard_layout<SetStateFlagsIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
76963 
76964   struct ShaderModuleValidationCacheCreateInfoEXT
76965   {
76966     static const bool allowDuplicate = false;
76967     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
76968 
76969 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT76970     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {}) VULKAN_HPP_NOEXCEPT
76971     : validationCache( validationCache_ )
76972     {}
76973 
76974     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76975 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT76976     ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76977     {
76978       *this = rhs;
76979     }
76980 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76981 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT76982     ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76983     {
76984       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs );
76985       return *this;
76986     }
76987 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT76988     ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76989     {
76990       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderModuleValidationCacheCreateInfoEXT ) );
76991       return *this;
76992     }
76993 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT76994     ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76995     {
76996       pNext = pNext_;
76997       return *this;
76998     }
76999 
setValidationCacheVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77000     ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
77001     {
77002       validationCache = validationCache_;
77003       return *this;
77004     }
77005 
77006 
operator VkShaderModuleValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77007     operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77008     {
77009       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
77010     }
77011 
operator VkShaderModuleValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77012     operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
77013     {
77014       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
77015     }
77016 
77017 
77018 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77019     auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const& ) const = default;
77020 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77021     bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77022     {
77023       return ( sType == rhs.sType )
77024           && ( pNext == rhs.pNext )
77025           && ( validationCache == rhs.validationCache );
77026     }
77027 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT77028     bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77029     {
77030       return !operator==( rhs );
77031     }
77032 #endif
77033 
77034 
77035 
77036   public:
77037     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
77038     const void* pNext = {};
77039     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
77040 
77041   };
77042   static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
77043   static_assert( std::is_standard_layout<ShaderModuleValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
77044 
77045   template <>
77046   struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
77047   {
77048     using Type = ShaderModuleValidationCacheCreateInfoEXT;
77049   };
77050 
77051   struct ShaderResourceUsageAMD
77052   {
77053 
77054 
77055 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77056     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD(uint32_t numUsedVgprs_ = {}, uint32_t numUsedSgprs_ = {}, uint32_t ldsSizePerLocalWorkGroup_ = {}, size_t ldsUsageSizeInBytes_ = {}, size_t scratchMemUsageInBytes_ = {}) VULKAN_HPP_NOEXCEPT
77057     : numUsedVgprs( numUsedVgprs_ ), numUsedSgprs( numUsedSgprs_ ), ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ), ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ), scratchMemUsageInBytes( scratchMemUsageInBytes_ )
77058     {}
77059 
77060     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77061 
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77062     ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77063     {
77064       *this = rhs;
77065     }
77066 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77067 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77068     ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77069     {
77070       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>( &rhs );
77071       return *this;
77072     }
77073 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77074     ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77075     {
77076       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderResourceUsageAMD ) );
77077       return *this;
77078     }
77079 
77080 
operator VkShaderResourceUsageAMD const&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77081     operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT
77082     {
77083       return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
77084     }
77085 
operator VkShaderResourceUsageAMD&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77086     operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
77087     {
77088       return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
77089     }
77090 
77091 
77092 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77093     auto operator<=>( ShaderResourceUsageAMD const& ) const = default;
77094 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77095     bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77096     {
77097       return ( numUsedVgprs == rhs.numUsedVgprs )
77098           && ( numUsedSgprs == rhs.numUsedSgprs )
77099           && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
77100           && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
77101           && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
77102     }
77103 
operator !=VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD77104     bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77105     {
77106       return !operator==( rhs );
77107     }
77108 #endif
77109 
77110 
77111 
77112   public:
77113     uint32_t numUsedVgprs = {};
77114     uint32_t numUsedSgprs = {};
77115     uint32_t ldsSizePerLocalWorkGroup = {};
77116     size_t ldsUsageSizeInBytes = {};
77117     size_t scratchMemUsageInBytes = {};
77118 
77119   };
77120   static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" );
77121   static_assert( std::is_standard_layout<ShaderResourceUsageAMD>::value, "struct wrapper is not a standard layout!" );
77122 
77123   struct ShaderStatisticsInfoAMD
77124   {
77125 
77126 
77127 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77128     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
77129     : shaderStageMask( shaderStageMask_ ), resourceUsage( resourceUsage_ ), numPhysicalVgprs( numPhysicalVgprs_ ), numPhysicalSgprs( numPhysicalSgprs_ ), numAvailableVgprs( numAvailableVgprs_ ), numAvailableSgprs( numAvailableSgprs_ ), computeWorkGroupSize( computeWorkGroupSize_ )
77130     {}
77131 
77132     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77133 
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77134     ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77135     {
77136       *this = rhs;
77137     }
77138 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77139 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77140     ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77141     {
77142       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>( &rhs );
77143       return *this;
77144     }
77145 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77146     ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77147     {
77148       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderStatisticsInfoAMD ) );
77149       return *this;
77150     }
77151 
77152 
operator VkShaderStatisticsInfoAMD const&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77153     operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT
77154     {
77155       return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
77156     }
77157 
operator VkShaderStatisticsInfoAMD&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77158     operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
77159     {
77160       return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
77161     }
77162 
77163 
77164 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77165     auto operator<=>( ShaderStatisticsInfoAMD const& ) const = default;
77166 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77167     bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77168     {
77169       return ( shaderStageMask == rhs.shaderStageMask )
77170           && ( resourceUsage == rhs.resourceUsage )
77171           && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
77172           && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
77173           && ( numAvailableVgprs == rhs.numAvailableVgprs )
77174           && ( numAvailableSgprs == rhs.numAvailableSgprs )
77175           && ( computeWorkGroupSize == rhs.computeWorkGroupSize );
77176     }
77177 
operator !=VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD77178     bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77179     {
77180       return !operator==( rhs );
77181     }
77182 #endif
77183 
77184 
77185 
77186   public:
77187     VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
77188     VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
77189     uint32_t numPhysicalVgprs = {};
77190     uint32_t numPhysicalSgprs = {};
77191     uint32_t numAvailableVgprs = {};
77192     uint32_t numAvailableSgprs = {};
77193     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
77194 
77195   };
77196   static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" );
77197   static_assert( std::is_standard_layout<ShaderStatisticsInfoAMD>::value, "struct wrapper is not a standard layout!" );
77198 
77199   struct SharedPresentSurfaceCapabilitiesKHR
77200   {
77201     static const bool allowDuplicate = false;
77202     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
77203 
77204 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77205     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT
77206     : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
77207     {}
77208 
77209     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77210 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77211     SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
77212     {
77213       *this = rhs;
77214     }
77215 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77216 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77217     SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
77218     {
77219       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>( &rhs );
77220       return *this;
77221     }
77222 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77223     SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
77224     {
77225       memcpy( static_cast<void *>( this ), &rhs, sizeof( SharedPresentSurfaceCapabilitiesKHR ) );
77226       return *this;
77227     }
77228 
77229 
operator VkSharedPresentSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77230     operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
77231     {
77232       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
77233     }
77234 
operator VkSharedPresentSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77235     operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
77236     {
77237       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
77238     }
77239 
77240 
77241 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77242     auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const& ) const = default;
77243 #else
operator ==VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77244     bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
77245     {
77246       return ( sType == rhs.sType )
77247           && ( pNext == rhs.pNext )
77248           && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
77249     }
77250 
operator !=VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR77251     bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
77252     {
77253       return !operator==( rhs );
77254     }
77255 #endif
77256 
77257 
77258 
77259   public:
77260     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
77261     void* pNext = {};
77262     VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
77263 
77264   };
77265   static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
77266   static_assert( std::is_standard_layout<SharedPresentSurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
77267 
77268   template <>
77269   struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
77270   {
77271     using Type = SharedPresentSurfaceCapabilitiesKHR;
77272   };
77273 
77274 #ifdef VK_USE_PLATFORM_GGP
77275   struct StreamDescriptorSurfaceCreateInfoGGP
77276   {
77277     static const bool allowDuplicate = false;
77278     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
77279 
77280 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77281     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, GgpStreamDescriptor streamDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
77282     : flags( flags_ ), streamDescriptor( streamDescriptor_ )
77283     {}
77284 
77285     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77286 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77287     StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
77288     {
77289       *this = rhs;
77290     }
77291 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77292 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77293     StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
77294     {
77295       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs );
77296       return *this;
77297     }
77298 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77299     StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
77300     {
77301       memcpy( static_cast<void *>( this ), &rhs, sizeof( StreamDescriptorSurfaceCreateInfoGGP ) );
77302       return *this;
77303     }
77304 
setPNextVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77305     StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77306     {
77307       pNext = pNext_;
77308       return *this;
77309     }
77310 
setFlagsVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77311     StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
77312     {
77313       flags = flags_;
77314       return *this;
77315     }
77316 
setStreamDescriptorVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77317     StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
77318     {
77319       streamDescriptor = streamDescriptor_;
77320       return *this;
77321     }
77322 
77323 
operator VkStreamDescriptorSurfaceCreateInfoGGP const&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77324     operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT
77325     {
77326       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
77327     }
77328 
operator VkStreamDescriptorSurfaceCreateInfoGGP&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77329     operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
77330     {
77331       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
77332     }
77333 
77334 
77335 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77336     auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const& ) const = default;
77337 #else
operator ==VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77338     bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
77339     {
77340       return ( sType == rhs.sType )
77341           && ( pNext == rhs.pNext )
77342           && ( flags == rhs.flags )
77343           && ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 );
77344     }
77345 
operator !=VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP77346     bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
77347     {
77348       return !operator==( rhs );
77349     }
77350 #endif
77351 
77352 
77353 
77354   public:
77355     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
77356     const void* pNext = {};
77357     VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
77358     GgpStreamDescriptor streamDescriptor = {};
77359 
77360   };
77361   static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" );
77362   static_assert( std::is_standard_layout<StreamDescriptorSurfaceCreateInfoGGP>::value, "struct wrapper is not a standard layout!" );
77363 
77364   template <>
77365   struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
77366   {
77367     using Type = StreamDescriptorSurfaceCreateInfoGGP;
77368   };
77369 #endif /*VK_USE_PLATFORM_GGP*/
77370 
77371   struct SubpassDescriptionDepthStencilResolve
77372   {
77373     static const bool allowDuplicate = false;
77374     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
77375 
77376 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77377     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
77378     : depthResolveMode( depthResolveMode_ ), stencilResolveMode( stencilResolveMode_ ), pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
77379     {}
77380 
77381     VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77382 
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77383     SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
77384     {
77385       *this = rhs;
77386     }
77387 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77388 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77389     SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
77390     {
77391       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>( &rhs );
77392       return *this;
77393     }
77394 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77395     SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
77396     {
77397       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescriptionDepthStencilResolve ) );
77398       return *this;
77399     }
77400 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77401     SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77402     {
77403       pNext = pNext_;
77404       return *this;
77405     }
77406 
setDepthResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77407     SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
77408     {
77409       depthResolveMode = depthResolveMode_;
77410       return *this;
77411     }
77412 
setStencilResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77413     SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
77414     {
77415       stencilResolveMode = stencilResolveMode_;
77416       return *this;
77417     }
77418 
setPDepthStencilResolveAttachmentVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77419     SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
77420     {
77421       pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
77422       return *this;
77423     }
77424 
77425 
operator VkSubpassDescriptionDepthStencilResolve const&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77426     operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT
77427     {
77428       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>( this );
77429     }
77430 
operator VkSubpassDescriptionDepthStencilResolve&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77431     operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
77432     {
77433       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>( this );
77434     }
77435 
77436 
77437 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77438     auto operator<=>( SubpassDescriptionDepthStencilResolve const& ) const = default;
77439 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77440     bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
77441     {
77442       return ( sType == rhs.sType )
77443           && ( pNext == rhs.pNext )
77444           && ( depthResolveMode == rhs.depthResolveMode )
77445           && ( stencilResolveMode == rhs.stencilResolveMode )
77446           && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
77447     }
77448 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve77449     bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
77450     {
77451       return !operator==( rhs );
77452     }
77453 #endif
77454 
77455 
77456 
77457   public:
77458     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
77459     const void* pNext = {};
77460     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
77461     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
77462     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {};
77463 
77464   };
77465   static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" );
77466   static_assert( std::is_standard_layout<SubpassDescriptionDepthStencilResolve>::value, "struct wrapper is not a standard layout!" );
77467 
77468   template <>
77469   struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
77470   {
77471     using Type = SubpassDescriptionDepthStencilResolve;
77472   };
77473   using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
77474 
77475 #ifdef VK_USE_PLATFORM_WIN32_KHR
77476   struct SurfaceCapabilitiesFullScreenExclusiveEXT
77477   {
77478     static const bool allowDuplicate = false;
77479     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
77480 
77481 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77482     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT(VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {}) VULKAN_HPP_NOEXCEPT
77483     : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
77484     {}
77485 
77486     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77487 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77488     SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77489     {
77490       *this = rhs;
77491     }
77492 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77493 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77494     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77495     {
77496       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs );
77497       return *this;
77498     }
77499 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77500     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77501     {
77502       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) );
77503       return *this;
77504     }
77505 
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77506     SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
77507     {
77508       pNext = pNext_;
77509       return *this;
77510     }
77511 
setFullScreenExclusiveSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77512     SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
77513     {
77514       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
77515       return *this;
77516     }
77517 
77518 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77519     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT
77520     {
77521       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
77522     }
77523 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77524     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
77525     {
77526       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
77527     }
77528 
77529 
77530 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77531     auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const& ) const = default;
77532 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77533     bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77534     {
77535       return ( sType == rhs.sType )
77536           && ( pNext == rhs.pNext )
77537           && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
77538     }
77539 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT77540     bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77541     {
77542       return !operator==( rhs );
77543     }
77544 #endif
77545 
77546 
77547 
77548   public:
77549     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
77550     void* pNext = {};
77551     VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
77552 
77553   };
77554   static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" );
77555   static_assert( std::is_standard_layout<SurfaceCapabilitiesFullScreenExclusiveEXT>::value, "struct wrapper is not a standard layout!" );
77556 
77557   template <>
77558   struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
77559   {
77560     using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
77561   };
77562 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
77563 
77564 #ifdef VK_USE_PLATFORM_WIN32_KHR
77565   struct SurfaceFullScreenExclusiveInfoEXT
77566   {
77567     static const bool allowDuplicate = false;
77568     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
77569 
77570 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77571     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault) VULKAN_HPP_NOEXCEPT
77572     : fullScreenExclusive( fullScreenExclusive_ )
77573     {}
77574 
77575     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77576 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77577     SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77578     {
77579       *this = rhs;
77580     }
77581 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77582 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77583     SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77584     {
77585       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>( &rhs );
77586       return *this;
77587     }
77588 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77589     SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77590     {
77591       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFullScreenExclusiveInfoEXT ) );
77592       return *this;
77593     }
77594 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77595     SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
77596     {
77597       pNext = pNext_;
77598       return *this;
77599     }
77600 
setFullScreenExclusiveVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77601     SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
77602     {
77603       fullScreenExclusive = fullScreenExclusive_;
77604       return *this;
77605     }
77606 
77607 
operator VkSurfaceFullScreenExclusiveInfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77608     operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77609     {
77610       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
77611     }
77612 
operator VkSurfaceFullScreenExclusiveInfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77613     operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
77614     {
77615       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
77616     }
77617 
77618 
77619 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77620     auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const& ) const = default;
77621 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77622     bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77623     {
77624       return ( sType == rhs.sType )
77625           && ( pNext == rhs.pNext )
77626           && ( fullScreenExclusive == rhs.fullScreenExclusive );
77627     }
77628 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT77629     bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77630     {
77631       return !operator==( rhs );
77632     }
77633 #endif
77634 
77635 
77636 
77637   public:
77638     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
77639     void* pNext = {};
77640     VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
77641 
77642   };
77643   static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" );
77644   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveInfoEXT>::value, "struct wrapper is not a standard layout!" );
77645 
77646   template <>
77647   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
77648   {
77649     using Type = SurfaceFullScreenExclusiveInfoEXT;
77650   };
77651 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
77652 
77653 #ifdef VK_USE_PLATFORM_WIN32_KHR
77654   struct SurfaceFullScreenExclusiveWin32InfoEXT
77655   {
77656     static const bool allowDuplicate = false;
77657     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
77658 
77659 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77660     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT(HMONITOR hmonitor_ = {}) VULKAN_HPP_NOEXCEPT
77661     : hmonitor( hmonitor_ )
77662     {}
77663 
77664     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77665 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77666     SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77667     {
77668       *this = rhs;
77669     }
77670 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77671 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77672     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77673     {
77674       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs );
77675       return *this;
77676     }
77677 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77678     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77679     {
77680       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) );
77681       return *this;
77682     }
77683 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77684     SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77685     {
77686       pNext = pNext_;
77687       return *this;
77688     }
77689 
setHmonitorVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77690     SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
77691     {
77692       hmonitor = hmonitor_;
77693       return *this;
77694     }
77695 
77696 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77697     operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT
77698     {
77699       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
77700     }
77701 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77702     operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
77703     {
77704       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
77705     }
77706 
77707 
77708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77709     auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const& ) const = default;
77710 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77711     bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77712     {
77713       return ( sType == rhs.sType )
77714           && ( pNext == rhs.pNext )
77715           && ( hmonitor == rhs.hmonitor );
77716     }
77717 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT77718     bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77719     {
77720       return !operator==( rhs );
77721     }
77722 #endif
77723 
77724 
77725 
77726   public:
77727     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
77728     const void* pNext = {};
77729     HMONITOR hmonitor = {};
77730 
77731   };
77732   static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" );
77733   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveWin32InfoEXT>::value, "struct wrapper is not a standard layout!" );
77734 
77735   template <>
77736   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
77737   {
77738     using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
77739   };
77740 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
77741 
77742   struct SurfaceProtectedCapabilitiesKHR
77743   {
77744     static const bool allowDuplicate = false;
77745     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
77746 
77747 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77748     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR(VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {}) VULKAN_HPP_NOEXCEPT
77749     : supportsProtected( supportsProtected_ )
77750     {}
77751 
77752     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77753 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77754     SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
77755     {
77756       *this = rhs;
77757     }
77758 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77759 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77760     SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
77761     {
77762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>( &rhs );
77763       return *this;
77764     }
77765 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77766     SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
77767     {
77768       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceProtectedCapabilitiesKHR ) );
77769       return *this;
77770     }
77771 
setPNextVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77772     SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77773     {
77774       pNext = pNext_;
77775       return *this;
77776     }
77777 
setSupportsProtectedVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77778     SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
77779     {
77780       supportsProtected = supportsProtected_;
77781       return *this;
77782     }
77783 
77784 
operator VkSurfaceProtectedCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77785     operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
77786     {
77787       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
77788     }
77789 
operator VkSurfaceProtectedCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77790     operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
77791     {
77792       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
77793     }
77794 
77795 
77796 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77797     auto operator<=>( SurfaceProtectedCapabilitiesKHR const& ) const = default;
77798 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77799     bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
77800     {
77801       return ( sType == rhs.sType )
77802           && ( pNext == rhs.pNext )
77803           && ( supportsProtected == rhs.supportsProtected );
77804     }
77805 
operator !=VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR77806     bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
77807     {
77808       return !operator==( rhs );
77809     }
77810 #endif
77811 
77812 
77813 
77814   public:
77815     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
77816     const void* pNext = {};
77817     VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
77818 
77819   };
77820   static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" );
77821   static_assert( std::is_standard_layout<SurfaceProtectedCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
77822 
77823   template <>
77824   struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
77825   {
77826     using Type = SurfaceProtectedCapabilitiesKHR;
77827   };
77828 
77829   struct SwapchainCounterCreateInfoEXT
77830   {
77831     static const bool allowDuplicate = false;
77832     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
77833 
77834 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77835     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT
77836     : surfaceCounters( surfaceCounters_ )
77837     {}
77838 
77839     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77840 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77841     SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77842     {
77843       *this = rhs;
77844     }
77845 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77846 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77847     SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77848     {
77849       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>( &rhs );
77850       return *this;
77851     }
77852 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77853     SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77854     {
77855       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainCounterCreateInfoEXT ) );
77856       return *this;
77857     }
77858 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77859     SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77860     {
77861       pNext = pNext_;
77862       return *this;
77863     }
77864 
setSurfaceCountersVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77865     SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
77866     {
77867       surfaceCounters = surfaceCounters_;
77868       return *this;
77869     }
77870 
77871 
operator VkSwapchainCounterCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77872     operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77873     {
77874       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
77875     }
77876 
operator VkSwapchainCounterCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77877     operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
77878     {
77879       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
77880     }
77881 
77882 
77883 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77884     auto operator<=>( SwapchainCounterCreateInfoEXT const& ) const = default;
77885 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77886     bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77887     {
77888       return ( sType == rhs.sType )
77889           && ( pNext == rhs.pNext )
77890           && ( surfaceCounters == rhs.surfaceCounters );
77891     }
77892 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT77893     bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77894     {
77895       return !operator==( rhs );
77896     }
77897 #endif
77898 
77899 
77900 
77901   public:
77902     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
77903     const void* pNext = {};
77904     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
77905 
77906   };
77907   static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" );
77908   static_assert( std::is_standard_layout<SwapchainCounterCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
77909 
77910   template <>
77911   struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
77912   {
77913     using Type = SwapchainCounterCreateInfoEXT;
77914   };
77915 
77916   struct SwapchainDisplayNativeHdrCreateInfoAMD
77917   {
77918     static const bool allowDuplicate = false;
77919     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
77920 
77921 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77922     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {}) VULKAN_HPP_NOEXCEPT
77923     : localDimmingEnable( localDimmingEnable_ )
77924     {}
77925 
77926     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77927 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77928     SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77929     {
77930       *this = rhs;
77931     }
77932 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77933 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77934     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77935     {
77936       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs );
77937       return *this;
77938     }
77939 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77940     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
77941     {
77942       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) );
77943       return *this;
77944     }
77945 
setPNextVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77946     SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77947     {
77948       pNext = pNext_;
77949       return *this;
77950     }
77951 
setLocalDimmingEnableVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77952     SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
77953     {
77954       localDimmingEnable = localDimmingEnable_;
77955       return *this;
77956     }
77957 
77958 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77959     operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
77960     {
77961       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
77962     }
77963 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77964     operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
77965     {
77966       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
77967     }
77968 
77969 
77970 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77971     auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const& ) const = default;
77972 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77973     bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77974     {
77975       return ( sType == rhs.sType )
77976           && ( pNext == rhs.pNext )
77977           && ( localDimmingEnable == rhs.localDimmingEnable );
77978     }
77979 
operator !=VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD77980     bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
77981     {
77982       return !operator==( rhs );
77983     }
77984 #endif
77985 
77986 
77987 
77988   public:
77989     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
77990     const void* pNext = {};
77991     VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
77992 
77993   };
77994   static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" );
77995   static_assert( std::is_standard_layout<SwapchainDisplayNativeHdrCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
77996 
77997   template <>
77998   struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
77999   {
78000     using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
78001   };
78002 
78003   struct TextureLODGatherFormatPropertiesAMD
78004   {
78005     static const bool allowDuplicate = false;
78006     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
78007 
78008 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78009     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD(VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {}) VULKAN_HPP_NOEXCEPT
78010     : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
78011     {}
78012 
78013     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78014 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78015     TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78016     {
78017       *this = rhs;
78018     }
78019 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78020 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78021     TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78022     {
78023       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>( &rhs );
78024       return *this;
78025     }
78026 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78027     TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78028     {
78029       memcpy( static_cast<void *>( this ), &rhs, sizeof( TextureLODGatherFormatPropertiesAMD ) );
78030       return *this;
78031     }
78032 
78033 
operator VkTextureLODGatherFormatPropertiesAMD const&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78034     operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
78035     {
78036       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
78037     }
78038 
operator VkTextureLODGatherFormatPropertiesAMD&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78039     operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
78040     {
78041       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
78042     }
78043 
78044 
78045 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78046     auto operator<=>( TextureLODGatherFormatPropertiesAMD const& ) const = default;
78047 #else
operator ==VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78048     bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78049     {
78050       return ( sType == rhs.sType )
78051           && ( pNext == rhs.pNext )
78052           && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
78053     }
78054 
operator !=VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD78055     bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78056     {
78057       return !operator==( rhs );
78058     }
78059 #endif
78060 
78061 
78062 
78063   public:
78064     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
78065     void* pNext = {};
78066     VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
78067 
78068   };
78069   static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" );
78070   static_assert( std::is_standard_layout<TextureLODGatherFormatPropertiesAMD>::value, "struct wrapper is not a standard layout!" );
78071 
78072   template <>
78073   struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
78074   {
78075     using Type = TextureLODGatherFormatPropertiesAMD;
78076   };
78077 
78078   struct TimelineSemaphoreSubmitInfo
78079   {
78080     static const bool allowDuplicate = false;
78081     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
78082 
78083 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78084     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo(uint32_t waitSemaphoreValueCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValueCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
78085     : waitSemaphoreValueCount( waitSemaphoreValueCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValueCount( signalSemaphoreValueCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
78086     {}
78087 
78088     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78089 
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78090     TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78091     {
78092       *this = rhs;
78093     }
78094 
78095 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78096     TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
78097     : waitSemaphoreValueCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValueCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
78098     {}
78099 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78100 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78101 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78102     TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78103     {
78104       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>( &rhs );
78105       return *this;
78106     }
78107 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78108     TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78109     {
78110       memcpy( static_cast<void *>( this ), &rhs, sizeof( TimelineSemaphoreSubmitInfo ) );
78111       return *this;
78112     }
78113 
setPNextVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78114     TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78115     {
78116       pNext = pNext_;
78117       return *this;
78118     }
78119 
setWaitSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78120     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
78121     {
78122       waitSemaphoreValueCount = waitSemaphoreValueCount_;
78123       return *this;
78124     }
78125 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78126     TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78127     {
78128       pWaitSemaphoreValues = pWaitSemaphoreValues_;
78129       return *this;
78130     }
78131 
78132 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78133     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78134     {
78135       waitSemaphoreValueCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
78136       pWaitSemaphoreValues = waitSemaphoreValues_.data();
78137       return *this;
78138     }
78139 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78140 
setSignalSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78141     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
78142     {
78143       signalSemaphoreValueCount = signalSemaphoreValueCount_;
78144       return *this;
78145     }
78146 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78147     TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78148     {
78149       pSignalSemaphoreValues = pSignalSemaphoreValues_;
78150       return *this;
78151     }
78152 
78153 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78154     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
78155     {
78156       signalSemaphoreValueCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
78157       pSignalSemaphoreValues = signalSemaphoreValues_.data();
78158       return *this;
78159     }
78160 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78161 
78162 
operator VkTimelineSemaphoreSubmitInfo const&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78163     operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
78164     {
78165       return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>( this );
78166     }
78167 
operator VkTimelineSemaphoreSubmitInfo&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78168     operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
78169     {
78170       return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>( this );
78171     }
78172 
78173 
78174 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78175     auto operator<=>( TimelineSemaphoreSubmitInfo const& ) const = default;
78176 #else
operator ==VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78177     bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78178     {
78179       return ( sType == rhs.sType )
78180           && ( pNext == rhs.pNext )
78181           && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount )
78182           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
78183           && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount )
78184           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
78185     }
78186 
operator !=VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo78187     bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78188     {
78189       return !operator==( rhs );
78190     }
78191 #endif
78192 
78193 
78194 
78195   public:
78196     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
78197     const void* pNext = {};
78198     uint32_t waitSemaphoreValueCount = {};
78199     const uint64_t* pWaitSemaphoreValues = {};
78200     uint32_t signalSemaphoreValueCount = {};
78201     const uint64_t* pSignalSemaphoreValues = {};
78202 
78203   };
78204   static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" );
78205   static_assert( std::is_standard_layout<TimelineSemaphoreSubmitInfo>::value, "struct wrapper is not a standard layout!" );
78206 
78207   template <>
78208   struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
78209   {
78210     using Type = TimelineSemaphoreSubmitInfo;
78211   };
78212   using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
78213 
78214 #ifdef VK_ENABLE_BETA_EXTENSIONS
78215   struct TraceRaysIndirectCommandKHR
78216   {
78217 
78218 
78219 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78220     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
78221     : width( width_ ), height( height_ ), depth( depth_ )
78222     {}
78223 
78224     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78225 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78226     TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78227     {
78228       *this = rhs;
78229     }
78230 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78231     explicit TraceRaysIndirectCommandKHR( Extent2D const& extent2D, uint32_t depth_ = {} )
78232       : width( extent2D.width )
78233       , height( extent2D.height )
78234       , depth( depth_ )
78235     {}
78236 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78237 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78238     TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78239     {
78240       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>( &rhs );
78241       return *this;
78242     }
78243 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78244     TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78245     {
78246       memcpy( static_cast<void *>( this ), &rhs, sizeof( TraceRaysIndirectCommandKHR ) );
78247       return *this;
78248     }
78249 
setWidthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78250     TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
78251     {
78252       width = width_;
78253       return *this;
78254     }
78255 
setHeightVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78256     TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
78257     {
78258       height = height_;
78259       return *this;
78260     }
78261 
setDepthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78262     TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
78263     {
78264       depth = depth_;
78265       return *this;
78266     }
78267 
78268 
operator VkTraceRaysIndirectCommandKHR const&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78269     operator VkTraceRaysIndirectCommandKHR const&() const VULKAN_HPP_NOEXCEPT
78270     {
78271       return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR*>( this );
78272     }
78273 
operator VkTraceRaysIndirectCommandKHR&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78274     operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
78275     {
78276       return *reinterpret_cast<VkTraceRaysIndirectCommandKHR*>( this );
78277     }
78278 
78279 
78280 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78281     auto operator<=>( TraceRaysIndirectCommandKHR const& ) const = default;
78282 #else
operator ==VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78283     bool operator==( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78284     {
78285       return ( width == rhs.width )
78286           && ( height == rhs.height )
78287           && ( depth == rhs.depth );
78288     }
78289 
operator !=VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR78290     bool operator!=( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78291     {
78292       return !operator==( rhs );
78293     }
78294 #endif
78295 
78296 
78297 
78298   public:
78299     uint32_t width = {};
78300     uint32_t height = {};
78301     uint32_t depth = {};
78302 
78303   };
78304   static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), "struct and wrapper have different size!" );
78305   static_assert( std::is_standard_layout<TraceRaysIndirectCommandKHR>::value, "struct wrapper is not a standard layout!" );
78306 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
78307 
78308   struct ValidationFeaturesEXT
78309   {
78310     static const bool allowDuplicate = false;
78311     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
78312 
78313 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78314     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
78315     : enabledValidationFeatureCount( enabledValidationFeatureCount_ ), pEnabledValidationFeatures( pEnabledValidationFeatures_ ), disabledValidationFeatureCount( disabledValidationFeatureCount_ ), pDisabledValidationFeatures( pDisabledValidationFeatures_ )
78316     {}
78317 
78318     VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78319 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78320     ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78321     {
78322       *this = rhs;
78323     }
78324 
78325 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78326     ValidationFeaturesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ = {} )
78327     : enabledValidationFeatureCount( static_cast<uint32_t>( enabledValidationFeatures_.size() ) ), pEnabledValidationFeatures( enabledValidationFeatures_.data() ), disabledValidationFeatureCount( static_cast<uint32_t>( disabledValidationFeatures_.size() ) ), pDisabledValidationFeatures( disabledValidationFeatures_.data() )
78328     {}
78329 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78330 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78331 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78332     ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78333     {
78334       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>( &rhs );
78335       return *this;
78336     }
78337 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78338     ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78339     {
78340       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationFeaturesEXT ) );
78341       return *this;
78342     }
78343 
setPNextVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78344     ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78345     {
78346       pNext = pNext_;
78347       return *this;
78348     }
78349 
setEnabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78350     ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
78351     {
78352       enabledValidationFeatureCount = enabledValidationFeatureCount_;
78353       return *this;
78354     }
78355 
setPEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78356     ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
78357     {
78358       pEnabledValidationFeatures = pEnabledValidationFeatures_;
78359       return *this;
78360     }
78361 
78362 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78363     ValidationFeaturesEXT & setEnabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
78364     {
78365       enabledValidationFeatureCount = static_cast<uint32_t>( enabledValidationFeatures_.size() );
78366       pEnabledValidationFeatures = enabledValidationFeatures_.data();
78367       return *this;
78368     }
78369 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78370 
setDisabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78371     ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
78372     {
78373       disabledValidationFeatureCount = disabledValidationFeatureCount_;
78374       return *this;
78375     }
78376 
setPDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78377     ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
78378     {
78379       pDisabledValidationFeatures = pDisabledValidationFeatures_;
78380       return *this;
78381     }
78382 
78383 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78384     ValidationFeaturesEXT & setDisabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
78385     {
78386       disabledValidationFeatureCount = static_cast<uint32_t>( disabledValidationFeatures_.size() );
78387       pDisabledValidationFeatures = disabledValidationFeatures_.data();
78388       return *this;
78389     }
78390 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78391 
78392 
operator VkValidationFeaturesEXT const&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78393     operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
78394     {
78395       return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
78396     }
78397 
operator VkValidationFeaturesEXT&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78398     operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
78399     {
78400       return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
78401     }
78402 
78403 
78404 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78405     auto operator<=>( ValidationFeaturesEXT const& ) const = default;
78406 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78407     bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78408     {
78409       return ( sType == rhs.sType )
78410           && ( pNext == rhs.pNext )
78411           && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
78412           && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
78413           && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
78414           && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
78415     }
78416 
operator !=VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT78417     bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78418     {
78419       return !operator==( rhs );
78420     }
78421 #endif
78422 
78423 
78424 
78425   public:
78426     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
78427     const void* pNext = {};
78428     uint32_t enabledValidationFeatureCount = {};
78429     const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {};
78430     uint32_t disabledValidationFeatureCount = {};
78431     const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {};
78432 
78433   };
78434   static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" );
78435   static_assert( std::is_standard_layout<ValidationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
78436 
78437   template <>
78438   struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
78439   {
78440     using Type = ValidationFeaturesEXT;
78441   };
78442 
78443   struct ValidationFlagsEXT
78444   {
78445     static const bool allowDuplicate = false;
78446     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
78447 
78448 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT78449     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT(uint32_t disabledValidationCheckCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {}) VULKAN_HPP_NOEXCEPT
78450     : disabledValidationCheckCount( disabledValidationCheckCount_ ), pDisabledValidationChecks( pDisabledValidationChecks_ )
78451     {}
78452 
78453     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78454 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT78455     ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78456     {
78457       *this = rhs;
78458     }
78459 
78460 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT78461     ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ )
78462     : disabledValidationCheckCount( static_cast<uint32_t>( disabledValidationChecks_.size() ) ), pDisabledValidationChecks( disabledValidationChecks_.data() )
78463     {}
78464 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78465 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78466 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT78467     ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78468     {
78469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>( &rhs );
78470       return *this;
78471     }
78472 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT78473     ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78474     {
78475       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationFlagsEXT ) );
78476       return *this;
78477     }
78478 
setPNextVULKAN_HPP_NAMESPACE::ValidationFlagsEXT78479     ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78480     {
78481       pNext = pNext_;
78482       return *this;
78483     }
78484 
setDisabledValidationCheckCountVULKAN_HPP_NAMESPACE::ValidationFlagsEXT78485     ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
78486     {
78487       disabledValidationCheckCount = disabledValidationCheckCount_;
78488       return *this;
78489     }
78490 
setPDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT78491     ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
78492     {
78493       pDisabledValidationChecks = pDisabledValidationChecks_;
78494       return *this;
78495     }
78496 
78497 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT78498     ValidationFlagsEXT & setDisabledValidationChecks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
78499     {
78500       disabledValidationCheckCount = static_cast<uint32_t>( disabledValidationChecks_.size() );
78501       pDisabledValidationChecks = disabledValidationChecks_.data();
78502       return *this;
78503     }
78504 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78505 
78506 
operator VkValidationFlagsEXT const&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT78507     operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT
78508     {
78509       return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
78510     }
78511 
operator VkValidationFlagsEXT&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT78512     operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
78513     {
78514       return *reinterpret_cast<VkValidationFlagsEXT*>( this );
78515     }
78516 
78517 
78518 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78519     auto operator<=>( ValidationFlagsEXT const& ) const = default;
78520 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFlagsEXT78521     bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78522     {
78523       return ( sType == rhs.sType )
78524           && ( pNext == rhs.pNext )
78525           && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
78526           && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
78527     }
78528 
operator !=VULKAN_HPP_NAMESPACE::ValidationFlagsEXT78529     bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78530     {
78531       return !operator==( rhs );
78532     }
78533 #endif
78534 
78535 
78536 
78537   public:
78538     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
78539     const void* pNext = {};
78540     uint32_t disabledValidationCheckCount = {};
78541     const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {};
78542 
78543   };
78544   static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" );
78545   static_assert( std::is_standard_layout<ValidationFlagsEXT>::value, "struct wrapper is not a standard layout!" );
78546 
78547   template <>
78548   struct CppType<StructureType, StructureType::eValidationFlagsEXT>
78549   {
78550     using Type = ValidationFlagsEXT;
78551   };
78552 
78553 #ifdef VK_USE_PLATFORM_VI_NN
78554   struct ViSurfaceCreateInfoNN
78555   {
78556     static const bool allowDuplicate = false;
78557     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
78558 
78559 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78560     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void* window_ = {}) VULKAN_HPP_NOEXCEPT
78561     : flags( flags_ ), window( window_ )
78562     {}
78563 
78564     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78565 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78566     ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
78567     {
78568       *this = rhs;
78569     }
78570 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78571 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78572     ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
78573     {
78574       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>( &rhs );
78575       return *this;
78576     }
78577 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78578     ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
78579     {
78580       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViSurfaceCreateInfoNN ) );
78581       return *this;
78582     }
78583 
setPNextVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78584     ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78585     {
78586       pNext = pNext_;
78587       return *this;
78588     }
78589 
setFlagsVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78590     ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
78591     {
78592       flags = flags_;
78593       return *this;
78594     }
78595 
setWindowVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78596     ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT
78597     {
78598       window = window_;
78599       return *this;
78600     }
78601 
78602 
operator VkViSurfaceCreateInfoNN const&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78603     operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT
78604     {
78605       return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
78606     }
78607 
operator VkViSurfaceCreateInfoNN&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78608     operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
78609     {
78610       return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
78611     }
78612 
78613 
78614 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78615     auto operator<=>( ViSurfaceCreateInfoNN const& ) const = default;
78616 #else
operator ==VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78617     bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
78618     {
78619       return ( sType == rhs.sType )
78620           && ( pNext == rhs.pNext )
78621           && ( flags == rhs.flags )
78622           && ( window == rhs.window );
78623     }
78624 
operator !=VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN78625     bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
78626     {
78627       return !operator==( rhs );
78628     }
78629 #endif
78630 
78631 
78632 
78633   public:
78634     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
78635     const void* pNext = {};
78636     VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
78637     void* window = {};
78638 
78639   };
78640   static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" );
78641   static_assert( std::is_standard_layout<ViSurfaceCreateInfoNN>::value, "struct wrapper is not a standard layout!" );
78642 
78643   template <>
78644   struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
78645   {
78646     using Type = ViSurfaceCreateInfoNN;
78647   };
78648 #endif /*VK_USE_PLATFORM_VI_NN*/
78649 
78650 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
78651   struct WaylandSurfaceCreateInfoKHR
78652   {
78653     static const bool allowDuplicate = false;
78654     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
78655 
78656 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78657     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, struct wl_display* display_ = {}, struct wl_surface* surface_ = {}) VULKAN_HPP_NOEXCEPT
78658     : flags( flags_ ), display( display_ ), surface( surface_ )
78659     {}
78660 
78661     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78662 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78663     WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78664     {
78665       *this = rhs;
78666     }
78667 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78668 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78669     WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78670     {
78671       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>( &rhs );
78672       return *this;
78673     }
78674 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78675     WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78676     {
78677       memcpy( static_cast<void *>( this ), &rhs, sizeof( WaylandSurfaceCreateInfoKHR ) );
78678       return *this;
78679     }
78680 
setPNextVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78681     WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78682     {
78683       pNext = pNext_;
78684       return *this;
78685     }
78686 
setFlagsVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78687     WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
78688     {
78689       flags = flags_;
78690       return *this;
78691     }
78692 
setDisplayVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78693     WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT
78694     {
78695       display = display_;
78696       return *this;
78697     }
78698 
setSurfaceVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78699     WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT
78700     {
78701       surface = surface_;
78702       return *this;
78703     }
78704 
78705 
operator VkWaylandSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78706     operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
78707     {
78708       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
78709     }
78710 
operator VkWaylandSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78711     operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
78712     {
78713       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
78714     }
78715 
78716 
78717 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78718     auto operator<=>( WaylandSurfaceCreateInfoKHR const& ) const = default;
78719 #else
operator ==VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78720     bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78721     {
78722       return ( sType == rhs.sType )
78723           && ( pNext == rhs.pNext )
78724           && ( flags == rhs.flags )
78725           && ( display == rhs.display )
78726           && ( surface == rhs.surface );
78727     }
78728 
operator !=VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR78729     bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78730     {
78731       return !operator==( rhs );
78732     }
78733 #endif
78734 
78735 
78736 
78737   public:
78738     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
78739     const void* pNext = {};
78740     VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
78741     struct wl_display* display = {};
78742     struct wl_surface* surface = {};
78743 
78744   };
78745   static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
78746   static_assert( std::is_standard_layout<WaylandSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
78747 
78748   template <>
78749   struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
78750   {
78751     using Type = WaylandSurfaceCreateInfoKHR;
78752   };
78753 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
78754 
78755 #ifdef VK_USE_PLATFORM_WIN32_KHR
78756   struct Win32KeyedMutexAcquireReleaseInfoKHR
78757   {
78758     static const bool allowDuplicate = false;
78759     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
78760 
78761 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78762     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
78763     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeouts( pAcquireTimeouts_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
78764     {}
78765 
78766     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78767 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78768     Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78769     {
78770       *this = rhs;
78771     }
78772 
78773 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78774     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_ = {} )
78775     : 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() )
78776     {
78777 #ifdef VULKAN_HPP_NO_EXCEPTIONS
78778       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
78779       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() );
78780       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() );
78781 #else
78782       if ( acquireSyncs_.size() != acquireKeys_.size() )
78783       {
78784         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" );
78785       }
78786       if ( acquireSyncs_.size() != acquireTimeouts_.size() )
78787       {
78788         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" );
78789       }
78790       if ( acquireKeys_.size() != acquireTimeouts_.size() )
78791       {
78792         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" );
78793       }
78794 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
78795 
78796 #ifdef VULKAN_HPP_NO_EXCEPTIONS
78797       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
78798 #else
78799       if ( releaseSyncs_.size() != releaseKeys_.size() )
78800       {
78801         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" );
78802       }
78803 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
78804     }
78805 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78806 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78807 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78808     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78809     {
78810       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs );
78811       return *this;
78812     }
78813 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78814     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78815     {
78816       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) );
78817       return *this;
78818     }
78819 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78820     Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78821     {
78822       pNext = pNext_;
78823       return *this;
78824     }
78825 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78826     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
78827     {
78828       acquireCount = acquireCount_;
78829       return *this;
78830     }
78831 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78832     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
78833     {
78834       pAcquireSyncs = pAcquireSyncs_;
78835       return *this;
78836     }
78837 
78838 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78839     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
78840     {
78841       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
78842       pAcquireSyncs = acquireSyncs_.data();
78843       return *this;
78844     }
78845 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78846 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78847     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
78848     {
78849       pAcquireKeys = pAcquireKeys_;
78850       return *this;
78851     }
78852 
78853 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78854     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
78855     {
78856       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
78857       pAcquireKeys = acquireKeys_.data();
78858       return *this;
78859     }
78860 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78861 
setPAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78862     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
78863     {
78864       pAcquireTimeouts = pAcquireTimeouts_;
78865       return *this;
78866     }
78867 
78868 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78869     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
78870     {
78871       acquireCount = static_cast<uint32_t>( acquireTimeouts_.size() );
78872       pAcquireTimeouts = acquireTimeouts_.data();
78873       return *this;
78874     }
78875 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78876 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78877     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
78878     {
78879       releaseCount = releaseCount_;
78880       return *this;
78881     }
78882 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78883     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
78884     {
78885       pReleaseSyncs = pReleaseSyncs_;
78886       return *this;
78887     }
78888 
78889 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78890     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
78891     {
78892       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
78893       pReleaseSyncs = releaseSyncs_.data();
78894       return *this;
78895     }
78896 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78897 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78898     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
78899     {
78900       pReleaseKeys = pReleaseKeys_;
78901       return *this;
78902     }
78903 
78904 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78905     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
78906     {
78907       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
78908       pReleaseKeys = releaseKeys_.data();
78909       return *this;
78910     }
78911 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
78912 
78913 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78914     operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT
78915     {
78916       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
78917     }
78918 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78919     operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
78920     {
78921       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
78922     }
78923 
78924 
78925 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78926     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const& ) const = default;
78927 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78928     bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78929     {
78930       return ( sType == rhs.sType )
78931           && ( pNext == rhs.pNext )
78932           && ( acquireCount == rhs.acquireCount )
78933           && ( pAcquireSyncs == rhs.pAcquireSyncs )
78934           && ( pAcquireKeys == rhs.pAcquireKeys )
78935           && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
78936           && ( releaseCount == rhs.releaseCount )
78937           && ( pReleaseSyncs == rhs.pReleaseSyncs )
78938           && ( pReleaseKeys == rhs.pReleaseKeys );
78939     }
78940 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR78941     bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78942     {
78943       return !operator==( rhs );
78944     }
78945 #endif
78946 
78947 
78948 
78949   public:
78950     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
78951     const void* pNext = {};
78952     uint32_t acquireCount = {};
78953     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
78954     const uint64_t* pAcquireKeys = {};
78955     const uint32_t* pAcquireTimeouts = {};
78956     uint32_t releaseCount = {};
78957     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
78958     const uint64_t* pReleaseKeys = {};
78959 
78960   };
78961   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" );
78962   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoKHR>::value, "struct wrapper is not a standard layout!" );
78963 
78964   template <>
78965   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
78966   {
78967     using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
78968   };
78969 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78970 
78971 #ifdef VK_USE_PLATFORM_WIN32_KHR
78972   struct Win32KeyedMutexAcquireReleaseInfoNV
78973   {
78974     static const bool allowDuplicate = false;
78975     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
78976 
78977 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV78978     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
78979     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
78980     {}
78981 
78982     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78983 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV78984     Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
78985     {
78986       *this = rhs;
78987     }
78988 
78989 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV78990     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_ = {} )
78991     : 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() )
78992     {
78993 #ifdef VULKAN_HPP_NO_EXCEPTIONS
78994       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
78995       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() );
78996       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() );
78997 #else
78998       if ( acquireSyncs_.size() != acquireKeys_.size() )
78999       {
79000         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" );
79001       }
79002       if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() )
79003       {
79004         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" );
79005       }
79006       if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() )
79007       {
79008         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" );
79009       }
79010 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
79011 
79012 #ifdef VULKAN_HPP_NO_EXCEPTIONS
79013       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
79014 #else
79015       if ( releaseSyncs_.size() != releaseKeys_.size() )
79016       {
79017         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" );
79018       }
79019 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
79020     }
79021 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79022 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79023 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79024     Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
79025     {
79026       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs );
79027       return *this;
79028     }
79029 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79030     Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
79031     {
79032       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) );
79033       return *this;
79034     }
79035 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79036     Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79037     {
79038       pNext = pNext_;
79039       return *this;
79040     }
79041 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79042     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
79043     {
79044       acquireCount = acquireCount_;
79045       return *this;
79046     }
79047 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79048     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
79049     {
79050       pAcquireSyncs = pAcquireSyncs_;
79051       return *this;
79052     }
79053 
79054 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79055     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
79056     {
79057       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
79058       pAcquireSyncs = acquireSyncs_.data();
79059       return *this;
79060     }
79061 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79062 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79063     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
79064     {
79065       pAcquireKeys = pAcquireKeys_;
79066       return *this;
79067     }
79068 
79069 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79070     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
79071     {
79072       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
79073       pAcquireKeys = acquireKeys_.data();
79074       return *this;
79075     }
79076 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79077 
setPAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79078     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
79079     {
79080       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
79081       return *this;
79082     }
79083 
79084 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79085     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
79086     {
79087       acquireCount = static_cast<uint32_t>( acquireTimeoutMilliseconds_.size() );
79088       pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
79089       return *this;
79090     }
79091 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79092 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79093     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
79094     {
79095       releaseCount = releaseCount_;
79096       return *this;
79097     }
79098 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79099     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
79100     {
79101       pReleaseSyncs = pReleaseSyncs_;
79102       return *this;
79103     }
79104 
79105 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79106     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
79107     {
79108       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
79109       pReleaseSyncs = releaseSyncs_.data();
79110       return *this;
79111     }
79112 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79113 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79114     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
79115     {
79116       pReleaseKeys = pReleaseKeys_;
79117       return *this;
79118     }
79119 
79120 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79121     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
79122     {
79123       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
79124       pReleaseKeys = releaseKeys_.data();
79125       return *this;
79126     }
79127 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79128 
79129 
operator VkWin32KeyedMutexAcquireReleaseInfoNV const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79130     operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT
79131     {
79132       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
79133     }
79134 
operator VkWin32KeyedMutexAcquireReleaseInfoNV&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79135     operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
79136     {
79137       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
79138     }
79139 
79140 
79141 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79142     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const& ) const = default;
79143 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79144     bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
79145     {
79146       return ( sType == rhs.sType )
79147           && ( pNext == rhs.pNext )
79148           && ( acquireCount == rhs.acquireCount )
79149           && ( pAcquireSyncs == rhs.pAcquireSyncs )
79150           && ( pAcquireKeys == rhs.pAcquireKeys )
79151           && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
79152           && ( releaseCount == rhs.releaseCount )
79153           && ( pReleaseSyncs == rhs.pReleaseSyncs )
79154           && ( pReleaseKeys == rhs.pReleaseKeys );
79155     }
79156 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV79157     bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
79158     {
79159       return !operator==( rhs );
79160     }
79161 #endif
79162 
79163 
79164 
79165   public:
79166     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
79167     const void* pNext = {};
79168     uint32_t acquireCount = {};
79169     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
79170     const uint64_t* pAcquireKeys = {};
79171     const uint32_t* pAcquireTimeoutMilliseconds = {};
79172     uint32_t releaseCount = {};
79173     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
79174     const uint64_t* pReleaseKeys = {};
79175 
79176   };
79177   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" );
79178   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoNV>::value, "struct wrapper is not a standard layout!" );
79179 
79180   template <>
79181   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
79182   {
79183     using Type = Win32KeyedMutexAcquireReleaseInfoNV;
79184   };
79185 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79186 
79187 #ifdef VK_USE_PLATFORM_WIN32_KHR
79188   struct Win32SurfaceCreateInfoKHR
79189   {
79190     static const bool allowDuplicate = false;
79191     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
79192 
79193 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79194     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, HINSTANCE hinstance_ = {}, HWND hwnd_ = {}) VULKAN_HPP_NOEXCEPT
79195     : flags( flags_ ), hinstance( hinstance_ ), hwnd( hwnd_ )
79196     {}
79197 
79198     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79199 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79200     Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79201     {
79202       *this = rhs;
79203     }
79204 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79205 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79206     Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79207     {
79208       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>( &rhs );
79209       return *this;
79210     }
79211 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79212     Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79213     {
79214       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32SurfaceCreateInfoKHR ) );
79215       return *this;
79216     }
79217 
setPNextVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79218     Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79219     {
79220       pNext = pNext_;
79221       return *this;
79222     }
79223 
setFlagsVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79224     Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
79225     {
79226       flags = flags_;
79227       return *this;
79228     }
79229 
setHinstanceVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79230     Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
79231     {
79232       hinstance = hinstance_;
79233       return *this;
79234     }
79235 
setHwndVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79236     Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
79237     {
79238       hwnd = hwnd_;
79239       return *this;
79240     }
79241 
79242 
operator VkWin32SurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79243     operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
79244     {
79245       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
79246     }
79247 
operator VkWin32SurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79248     operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
79249     {
79250       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
79251     }
79252 
79253 
79254 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79255     auto operator<=>( Win32SurfaceCreateInfoKHR const& ) const = default;
79256 #else
operator ==VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79257     bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79258     {
79259       return ( sType == rhs.sType )
79260           && ( pNext == rhs.pNext )
79261           && ( flags == rhs.flags )
79262           && ( hinstance == rhs.hinstance )
79263           && ( hwnd == rhs.hwnd );
79264     }
79265 
operator !=VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR79266     bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79267     {
79268       return !operator==( rhs );
79269     }
79270 #endif
79271 
79272 
79273 
79274   public:
79275     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
79276     const void* pNext = {};
79277     VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
79278     HINSTANCE hinstance = {};
79279     HWND hwnd = {};
79280 
79281   };
79282   static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
79283   static_assert( std::is_standard_layout<Win32SurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
79284 
79285   template <>
79286   struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
79287   {
79288     using Type = Win32SurfaceCreateInfoKHR;
79289   };
79290 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79291 
79292   struct WriteDescriptorSetAccelerationStructureKHR
79293   {
79294     static const bool allowDuplicate = false;
79295     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
79296 
79297 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79298     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT
79299     : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ )
79300     {}
79301 
79302     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79303 
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79304     WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79305     {
79306       *this = rhs;
79307     }
79308 
79309 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79310     WriteDescriptorSetAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ )
79311     : accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() )
79312     {}
79313 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79314 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79315 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79316     WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79317     {
79318       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>( &rhs );
79319       return *this;
79320     }
79321 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79322     WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79323     {
79324       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSetAccelerationStructureKHR ) );
79325       return *this;
79326     }
79327 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79328     WriteDescriptorSetAccelerationStructureKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79329     {
79330       pNext = pNext_;
79331       return *this;
79332     }
79333 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79334     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
79335     {
79336       accelerationStructureCount = accelerationStructureCount_;
79337       return *this;
79338     }
79339 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79340     WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
79341     {
79342       pAccelerationStructures = pAccelerationStructures_;
79343       return *this;
79344     }
79345 
79346 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79347     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
79348     {
79349       accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
79350       pAccelerationStructures = accelerationStructures_.data();
79351       return *this;
79352     }
79353 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79354 
79355 
operator VkWriteDescriptorSetAccelerationStructureKHR const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79356     operator VkWriteDescriptorSetAccelerationStructureKHR const&() const VULKAN_HPP_NOEXCEPT
79357     {
79358       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>( this );
79359     }
79360 
operator VkWriteDescriptorSetAccelerationStructureKHR&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79361     operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
79362     {
79363       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>( this );
79364     }
79365 
79366 
79367 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79368     auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const& ) const = default;
79369 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79370     bool operator==( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79371     {
79372       return ( sType == rhs.sType )
79373           && ( pNext == rhs.pNext )
79374           && ( accelerationStructureCount == rhs.accelerationStructureCount )
79375           && ( pAccelerationStructures == rhs.pAccelerationStructures );
79376     }
79377 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR79378     bool operator!=( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79379     {
79380       return !operator==( rhs );
79381     }
79382 #endif
79383 
79384 
79385 
79386   public:
79387     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
79388     const void* pNext = {};
79389     uint32_t accelerationStructureCount = {};
79390     const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures = {};
79391 
79392   };
79393   static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), "struct and wrapper have different size!" );
79394   static_assert( std::is_standard_layout<WriteDescriptorSetAccelerationStructureKHR>::value, "struct wrapper is not a standard layout!" );
79395 
79396   template <>
79397   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
79398   {
79399     using Type = WriteDescriptorSetAccelerationStructureKHR;
79400   };
79401   using WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR;
79402 
79403   struct WriteDescriptorSetInlineUniformBlockEXT
79404   {
79405     static const bool allowDuplicate = false;
79406     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
79407 
79408 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79409     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT(uint32_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
79410     : dataSize( dataSize_ ), pData( pData_ )
79411     {}
79412 
79413     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79414 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79415     WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79416     {
79417       *this = rhs;
79418     }
79419 
79420 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79421     template <typename T>
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79422     WriteDescriptorSetInlineUniformBlockEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ )
79423     : dataSize( static_cast<uint32_t>( data_.size() * sizeof(T) ) ), pData( data_.data() )
79424     {}
79425 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79426 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79427 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79428     WriteDescriptorSetInlineUniformBlockEXT & operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79429     {
79430       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT const *>( &rhs );
79431       return *this;
79432     }
79433 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79434     WriteDescriptorSetInlineUniformBlockEXT & operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79435     {
79436       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSetInlineUniformBlockEXT ) );
79437       return *this;
79438     }
79439 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79440     WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79441     {
79442       pNext = pNext_;
79443       return *this;
79444     }
79445 
setDataSizeVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79446     WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
79447     {
79448       dataSize = dataSize_;
79449       return *this;
79450     }
79451 
setPDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79452     WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
79453     {
79454       pData = pData_;
79455       return *this;
79456     }
79457 
79458 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79459     template <typename T>
setDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79460     WriteDescriptorSetInlineUniformBlockEXT & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
79461     {
79462       dataSize = static_cast<uint32_t>( data_.size() * sizeof(T) );
79463       pData = data_.data();
79464       return *this;
79465     }
79466 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79467 
79468 
operator VkWriteDescriptorSetInlineUniformBlockEXT const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79469     operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT
79470     {
79471       return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
79472     }
79473 
operator VkWriteDescriptorSetInlineUniformBlockEXT&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79474     operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT
79475     {
79476       return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
79477     }
79478 
79479 
79480 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79481     auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const& ) const = default;
79482 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79483     bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79484     {
79485       return ( sType == rhs.sType )
79486           && ( pNext == rhs.pNext )
79487           && ( dataSize == rhs.dataSize )
79488           && ( pData == rhs.pData );
79489     }
79490 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT79491     bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79492     {
79493       return !operator==( rhs );
79494     }
79495 #endif
79496 
79497 
79498 
79499   public:
79500     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
79501     const void* pNext = {};
79502     uint32_t dataSize = {};
79503     const void* pData = {};
79504 
79505   };
79506   static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" );
79507   static_assert( std::is_standard_layout<WriteDescriptorSetInlineUniformBlockEXT>::value, "struct wrapper is not a standard layout!" );
79508 
79509   template <>
79510   struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlockEXT>
79511   {
79512     using Type = WriteDescriptorSetInlineUniformBlockEXT;
79513   };
79514 
79515 #ifdef VK_USE_PLATFORM_XCB_KHR
79516   struct XcbSurfaceCreateInfoKHR
79517   {
79518     static const bool allowDuplicate = false;
79519     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
79520 
79521 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79522     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, xcb_connection_t* connection_ = {}, xcb_window_t window_ = {}) VULKAN_HPP_NOEXCEPT
79523     : flags( flags_ ), connection( connection_ ), window( window_ )
79524     {}
79525 
79526     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79527 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79528     XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79529     {
79530       *this = rhs;
79531     }
79532 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79533 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79534     XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79535     {
79536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>( &rhs );
79537       return *this;
79538     }
79539 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79540     XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79541     {
79542       memcpy( static_cast<void *>( this ), &rhs, sizeof( XcbSurfaceCreateInfoKHR ) );
79543       return *this;
79544     }
79545 
setPNextVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79546     XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79547     {
79548       pNext = pNext_;
79549       return *this;
79550     }
79551 
setFlagsVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79552     XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
79553     {
79554       flags = flags_;
79555       return *this;
79556     }
79557 
setConnectionVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79558     XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT
79559     {
79560       connection = connection_;
79561       return *this;
79562     }
79563 
setWindowVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79564     XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
79565     {
79566       window = window_;
79567       return *this;
79568     }
79569 
79570 
operator VkXcbSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79571     operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
79572     {
79573       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
79574     }
79575 
operator VkXcbSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79576     operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
79577     {
79578       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
79579     }
79580 
79581 
79582 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79583     auto operator<=>( XcbSurfaceCreateInfoKHR const& ) const = default;
79584 #else
operator ==VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79585     bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79586     {
79587       return ( sType == rhs.sType )
79588           && ( pNext == rhs.pNext )
79589           && ( flags == rhs.flags )
79590           && ( connection == rhs.connection )
79591           && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 );
79592     }
79593 
operator !=VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR79594     bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79595     {
79596       return !operator==( rhs );
79597     }
79598 #endif
79599 
79600 
79601 
79602   public:
79603     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
79604     const void* pNext = {};
79605     VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
79606     xcb_connection_t* connection = {};
79607     xcb_window_t window = {};
79608 
79609   };
79610   static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
79611   static_assert( std::is_standard_layout<XcbSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
79612 
79613   template <>
79614   struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
79615   {
79616     using Type = XcbSurfaceCreateInfoKHR;
79617   };
79618 #endif /*VK_USE_PLATFORM_XCB_KHR*/
79619 
79620 #ifdef VK_USE_PLATFORM_XLIB_KHR
79621   struct XlibSurfaceCreateInfoKHR
79622   {
79623     static const bool allowDuplicate = false;
79624     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
79625 
79626 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79627     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, Display* dpy_ = {}, Window window_ = {}) VULKAN_HPP_NOEXCEPT
79628     : flags( flags_ ), dpy( dpy_ ), window( window_ )
79629     {}
79630 
79631     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79632 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79633     XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79634     {
79635       *this = rhs;
79636     }
79637 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79638 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79639     XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79640     {
79641       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>( &rhs );
79642       return *this;
79643     }
79644 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79645     XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79646     {
79647       memcpy( static_cast<void *>( this ), &rhs, sizeof( XlibSurfaceCreateInfoKHR ) );
79648       return *this;
79649     }
79650 
setPNextVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79651     XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79652     {
79653       pNext = pNext_;
79654       return *this;
79655     }
79656 
setFlagsVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79657     XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
79658     {
79659       flags = flags_;
79660       return *this;
79661     }
79662 
setDpyVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79663     XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT
79664     {
79665       dpy = dpy_;
79666       return *this;
79667     }
79668 
setWindowVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79669     XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
79670     {
79671       window = window_;
79672       return *this;
79673     }
79674 
79675 
operator VkXlibSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79676     operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
79677     {
79678       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
79679     }
79680 
operator VkXlibSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79681     operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
79682     {
79683       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
79684     }
79685 
79686 
79687 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79688     auto operator<=>( XlibSurfaceCreateInfoKHR const& ) const = default;
79689 #else
operator ==VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79690     bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79691     {
79692       return ( sType == rhs.sType )
79693           && ( pNext == rhs.pNext )
79694           && ( flags == rhs.flags )
79695           && ( dpy == rhs.dpy )
79696           && ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 );
79697     }
79698 
operator !=VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR79699     bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79700     {
79701       return !operator==( rhs );
79702     }
79703 #endif
79704 
79705 
79706 
79707   public:
79708     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
79709     const void* pNext = {};
79710     VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
79711     Display* dpy = {};
79712     Window window = {};
79713 
79714   };
79715   static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
79716   static_assert( std::is_standard_layout<XlibSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
79717 
79718   template <>
79719   struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
79720   {
79721     using Type = XlibSurfaceCreateInfoKHR;
79722   };
79723 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
79724 
79725   class DebugReportCallbackEXT
79726   {
79727   public:
79728     using CType = VkDebugReportCallbackEXT;
79729 
79730     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT;
79731     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
79732 
79733   public:
DebugReportCallbackEXT()79734     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT
79735       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
79736     {}
79737 
DebugReportCallbackEXT(std::nullptr_t)79738     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
79739       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
79740     {}
79741 
DebugReportCallbackEXT(VkDebugReportCallbackEXT debugReportCallbackEXT)79742     VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT
79743       : m_debugReportCallbackEXT( debugReportCallbackEXT )
79744     {}
79745 
79746 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugReportCallbackEXT debugReportCallbackEXT)79747     DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT
79748     {
79749       m_debugReportCallbackEXT = debugReportCallbackEXT;
79750       return *this;
79751     }
79752 #endif
79753 
operator =(std::nullptr_t)79754     DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
79755     {
79756       m_debugReportCallbackEXT = VK_NULL_HANDLE;
79757       return *this;
79758     }
79759 
79760 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79761     auto operator<=>( DebugReportCallbackEXT const& ) const = default;
79762 #else
operator ==(DebugReportCallbackEXT const & rhs) const79763     bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79764     {
79765       return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT;
79766     }
79767 
operator !=(DebugReportCallbackEXT const & rhs) const79768     bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79769     {
79770       return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT;
79771     }
79772 
operator <(DebugReportCallbackEXT const & rhs) const79773     bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79774     {
79775       return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT;
79776     }
79777 #endif
79778 
operator VkDebugReportCallbackEXT() const79779     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT
79780     {
79781       return m_debugReportCallbackEXT;
79782     }
79783 
operator bool() const79784     explicit operator bool() const VULKAN_HPP_NOEXCEPT
79785     {
79786       return m_debugReportCallbackEXT != VK_NULL_HANDLE;
79787     }
79788 
operator !() const79789     bool operator!() const VULKAN_HPP_NOEXCEPT
79790     {
79791       return m_debugReportCallbackEXT == VK_NULL_HANDLE;
79792     }
79793 
79794   private:
79795     VkDebugReportCallbackEXT m_debugReportCallbackEXT;
79796   };
79797   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" );
79798 
79799   template <>
79800   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugReportCallbackEXT>
79801   {
79802     using type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
79803   };
79804 
79805   template <>
79806   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT>
79807   {
79808     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
79809   };
79810 
79811 
79812   template <>
79813   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT>
79814   {
79815     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
79816   };
79817 
79818 
79819   template <>
79820   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
79821   {
79822     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
79823   };
79824 
79825   class DebugUtilsMessengerEXT
79826   {
79827   public:
79828     using CType = VkDebugUtilsMessengerEXT;
79829 
79830     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT;
79831     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
79832 
79833   public:
DebugUtilsMessengerEXT()79834     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT
79835       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
79836     {}
79837 
DebugUtilsMessengerEXT(std::nullptr_t)79838     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
79839       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
79840     {}
79841 
DebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)79842     VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT
79843       : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
79844     {}
79845 
79846 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)79847     DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT
79848     {
79849       m_debugUtilsMessengerEXT = debugUtilsMessengerEXT;
79850       return *this;
79851     }
79852 #endif
79853 
operator =(std::nullptr_t)79854     DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
79855     {
79856       m_debugUtilsMessengerEXT = VK_NULL_HANDLE;
79857       return *this;
79858     }
79859 
79860 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79861     auto operator<=>( DebugUtilsMessengerEXT const& ) const = default;
79862 #else
operator ==(DebugUtilsMessengerEXT const & rhs) const79863     bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79864     {
79865       return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT;
79866     }
79867 
operator !=(DebugUtilsMessengerEXT const & rhs) const79868     bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79869     {
79870       return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT;
79871     }
79872 
operator <(DebugUtilsMessengerEXT const & rhs) const79873     bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79874     {
79875       return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT;
79876     }
79877 #endif
79878 
operator VkDebugUtilsMessengerEXT() const79879     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT
79880     {
79881       return m_debugUtilsMessengerEXT;
79882     }
79883 
operator bool() const79884     explicit operator bool() const VULKAN_HPP_NOEXCEPT
79885     {
79886       return m_debugUtilsMessengerEXT != VK_NULL_HANDLE;
79887     }
79888 
operator !() const79889     bool operator!() const VULKAN_HPP_NOEXCEPT
79890     {
79891       return m_debugUtilsMessengerEXT == VK_NULL_HANDLE;
79892     }
79893 
79894   private:
79895     VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
79896   };
79897   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" );
79898 
79899   template <>
79900   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugUtilsMessengerEXT>
79901   {
79902     using type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
79903   };
79904 
79905   template <>
79906   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT>
79907   {
79908     using Type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
79909   };
79910 
79911 
79912 
79913   template <>
79914   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
79915   {
79916     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
79917   };
79918 
79919 #ifndef VULKAN_HPP_NO_SMART_HANDLE
79920   class Instance;
79921   template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
79922   using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
79923   template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
79924   using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
79925   template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
79926   using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
79927 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
79928 
79929   class Instance
79930   {
79931   public:
79932     using CType = VkInstance;
79933 
79934     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance;
79935     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
79936 
79937   public:
Instance()79938     VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT
79939       : m_instance(VK_NULL_HANDLE)
79940     {}
79941 
Instance(std::nullptr_t)79942     VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
79943       : m_instance(VK_NULL_HANDLE)
79944     {}
79945 
Instance(VkInstance instance)79946     VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT
79947       : m_instance( instance )
79948     {}
79949 
79950 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkInstance instance)79951     Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT
79952     {
79953       m_instance = instance;
79954       return *this;
79955     }
79956 #endif
79957 
operator =(std::nullptr_t)79958     Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
79959     {
79960       m_instance = VK_NULL_HANDLE;
79961       return *this;
79962     }
79963 
79964 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79965     auto operator<=>( Instance const& ) const = default;
79966 #else
operator ==(Instance const & rhs) const79967     bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
79968     {
79969       return m_instance == rhs.m_instance;
79970     }
79971 
operator !=(Instance const & rhs) const79972     bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
79973     {
79974       return m_instance != rhs.m_instance;
79975     }
79976 
operator <(Instance const & rhs) const79977     bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
79978     {
79979       return m_instance < rhs.m_instance;
79980     }
79981 #endif
79982 
79983 #ifdef VK_USE_PLATFORM_ANDROID_KHR
79984     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
79985     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;
79986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79987     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
79988     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;
79989 #ifndef VULKAN_HPP_NO_SMART_HANDLE
79990     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
79991     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
79992 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
79993 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
79994 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
79995 
79996     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
79997     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;
79998 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
79999     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80000     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;
80001 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80002     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80003     typename ResultValueType<UniqueHandle<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;
80004 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80005 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80006 
80007     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80008     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;
80009 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80010     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80011     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;
80012 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80013     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80014     typename ResultValueType<UniqueHandle<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;
80015 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80016 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80017 
80018 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
80019     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80020     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;
80021 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80022     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80023     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;
80024 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80025     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80026     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80027 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80028 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80029 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
80030 
80031     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80032     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;
80033 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80034     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80035     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;
80036 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80037     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80038     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80039 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80040 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80041 
80042     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80043     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;
80044 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80045     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80046     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;
80047 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80048     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80049     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80050 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80052 
80053 #ifdef VK_USE_PLATFORM_IOS_MVK
80054     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80055     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;
80056 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80057     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80058     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;
80059 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80060     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80061     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80062 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80063 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80064 #endif /*VK_USE_PLATFORM_IOS_MVK*/
80065 
80066 #ifdef VK_USE_PLATFORM_FUCHSIA
80067     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80068     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;
80069 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80070     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80071     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;
80072 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80073     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80074     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80075 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80076 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80077 #endif /*VK_USE_PLATFORM_FUCHSIA*/
80078 
80079 #ifdef VK_USE_PLATFORM_MACOS_MVK
80080     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80081     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;
80082 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80083     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80084     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;
80085 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80086     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80087     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80088 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80090 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
80091 
80092 #ifdef VK_USE_PLATFORM_METAL_EXT
80093     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80094     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;
80095 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80096     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80097     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;
80098 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80099     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80100     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80101 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80102 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80103 #endif /*VK_USE_PLATFORM_METAL_EXT*/
80104 
80105 #ifdef VK_USE_PLATFORM_GGP
80106     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80107     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;
80108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80109     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80110     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;
80111 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80112     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80113     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80114 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80116 #endif /*VK_USE_PLATFORM_GGP*/
80117 
80118 #ifdef VK_USE_PLATFORM_VI_NN
80119     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80120     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;
80121 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80122     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80123     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;
80124 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80125     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80126     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80127 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80128 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80129 #endif /*VK_USE_PLATFORM_VI_NN*/
80130 
80131 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
80132     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80133     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;
80134 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80135     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80136     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;
80137 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80138     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80139     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80140 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80141 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80142 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
80143 
80144 #ifdef VK_USE_PLATFORM_WIN32_KHR
80145     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80146     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;
80147 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80148     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80149     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;
80150 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80151     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80152     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80153 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80154 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80155 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80156 
80157 #ifdef VK_USE_PLATFORM_XCB_KHR
80158     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80159     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;
80160 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80161     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80162     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;
80163 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80164     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80165     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80166 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80167 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80168 #endif /*VK_USE_PLATFORM_XCB_KHR*/
80169 
80170 #ifdef VK_USE_PLATFORM_XLIB_KHR
80171     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80172     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;
80173 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80174     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80175     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;
80176 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80177     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80178     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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;
80179 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80180 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80181 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
80182 
80183 
80184     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80185     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;
80186 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80187     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80188     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;
80189 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80190 
80191 
80192     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80193     void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80194 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80195     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80196     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;
80197 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80198 
80199 
80200     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80201     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80203     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80204     void destroy( 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;
80205 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80206 
80207 
80208     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80209     void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80210 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80211     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80212     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;
80213 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80214 
80215 
80216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80217     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80218 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80219     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80220     void destroy( 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;
80221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80222 
80223 
80224     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80225     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80226 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80227     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80228     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80229 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80230 
80231 
80232     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80233     void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80234 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80235     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80236     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;
80237 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80238 
80239 
80240     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80241     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80242 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80243     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80244     void destroy( 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;
80245 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80246 
80247     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80248     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;
80249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80250     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80251     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
80252     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
80253     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
80254 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80255 
80256     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80257     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;
80258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80259     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80260     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
80261     template<typename Allocator  = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
80262     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
80263 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80264 
80265     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80266     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;
80267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80268     template<typename Allocator  = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80269     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
80270     template<typename Allocator  = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type = 0>
80271     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
80272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80273 
80274     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80275     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
80276 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80277     template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80278     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
80279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80280 
80281 
80282     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80283     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;
80284 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80285     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80286     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;
80287 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80288 
operator VkInstance() const80289     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT
80290     {
80291       return m_instance;
80292     }
80293 
operator bool() const80294     explicit operator bool() const VULKAN_HPP_NOEXCEPT
80295     {
80296       return m_instance != VK_NULL_HANDLE;
80297     }
80298 
operator !() const80299     bool operator!() const VULKAN_HPP_NOEXCEPT
80300     {
80301       return m_instance == VK_NULL_HANDLE;
80302     }
80303 
80304   private:
80305     VkInstance m_instance;
80306   };
80307   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
80308 
80309   template <>
80310   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eInstance>
80311   {
80312     using type = VULKAN_HPP_NAMESPACE::Instance;
80313   };
80314 
80315   template <>
80316   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eInstance>
80317   {
80318     using Type = VULKAN_HPP_NAMESPACE::Instance;
80319   };
80320 
80321 
80322   template <>
80323   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance>
80324   {
80325     using Type = VULKAN_HPP_NAMESPACE::Instance;
80326   };
80327 
80328 
80329   template <>
80330   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Instance>
80331   {
80332     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
80333   };
80334 
80335 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80336   template <typename Dispatch> class UniqueHandleTraits<Instance, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
80337   using UniqueInstance = UniqueHandle<Instance, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
80338 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80339 
80340   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80341   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;
80342 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80343   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80344   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 );
80345 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80346   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80347   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<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 );
80348 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80349 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80350 
80351   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80352   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;
80353 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80354   template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80355   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
80356   template<typename Allocator  = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
80357   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
80358 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80359 
80360   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80361   VULKAN_HPP_NODISCARD Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) VULKAN_HPP_NOEXCEPT;
80362 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80363   template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80364   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
80365   template<typename Allocator  = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
80366   VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
80367 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80368 
80369   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80370   Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) VULKAN_HPP_NOEXCEPT;
80371 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80372   template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
80373   typename ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
80374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80375 
80376   template<typename Dispatch>
createInstance(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Instance * pInstance,Dispatch const & d)80377   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
80378   {
80379     return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkInstance*>( pInstance ) ) );
80380   }
80381 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80382   template<typename Dispatch>
createInstance(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)80383   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 )
80384   {
80385     VULKAN_HPP_NAMESPACE::Instance instance;
80386     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance*>( &instance ) ) );
80387     return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstance" );
80388   }
80389 #ifndef VULKAN_HPP_NO_SMART_HANDLE
80390   template<typename Dispatch>
createInstanceUnique(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)80391   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d )
80392   {
80393     VULKAN_HPP_NAMESPACE::Instance instance;
80394     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance*>( &instance ) ) );
80395 
80396     ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
80397     return createResultValue<Instance,Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstanceUnique", deleter );
80398   }
80399 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
80400 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80401 
80402   template<typename Dispatch>
enumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d)80403   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
80404   {
80405     return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
80406   }
80407 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80408   template<typename Allocator , typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d)80409   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d )
80410   {
80411     std::vector<ExtensionProperties,Allocator> properties;
80412     uint32_t propertyCount;
80413     Result result;
80414     do
80415     {
80416       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
80417       if ( ( result == Result::eSuccess ) && propertyCount )
80418       {
80419         properties.resize( propertyCount );
80420         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
80421       }
80422     } while ( result == Result::eIncomplete );
80423     if ( result == Result::eSuccess )
80424     {
80425       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
80426       properties.resize( propertyCount );
80427     }
80428     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
80429   }
80430   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d)80431   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d )
80432   {
80433     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
80434     uint32_t propertyCount;
80435     Result result;
80436     do
80437     {
80438       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
80439       if ( ( result == Result::eSuccess ) && propertyCount )
80440       {
80441         properties.resize( propertyCount );
80442         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
80443       }
80444     } while ( result == Result::eIncomplete );
80445     if ( result == Result::eSuccess )
80446     {
80447       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
80448       properties.resize( propertyCount );
80449     }
80450     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
80451   }
80452 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80453 
80454   template<typename Dispatch>
enumerateInstanceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d)80455   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) VULKAN_HPP_NOEXCEPT
80456   {
80457     return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
80458   }
80459 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80460   template<typename Allocator , typename Dispatch>
enumerateInstanceLayerProperties(Dispatch const & d)80461   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d )
80462   {
80463     std::vector<LayerProperties,Allocator> properties;
80464     uint32_t propertyCount;
80465     Result result;
80466     do
80467     {
80468       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
80469       if ( ( result == Result::eSuccess ) && propertyCount )
80470       {
80471         properties.resize( propertyCount );
80472         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
80473       }
80474     } while ( result == Result::eIncomplete );
80475     if ( result == Result::eSuccess )
80476     {
80477       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
80478       properties.resize( propertyCount );
80479     }
80480     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
80481   }
80482   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type>
enumerateInstanceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d)80483   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d )
80484   {
80485     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
80486     uint32_t propertyCount;
80487     Result result;
80488     do
80489     {
80490       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
80491       if ( ( result == Result::eSuccess ) && propertyCount )
80492       {
80493         properties.resize( propertyCount );
80494         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
80495       }
80496     } while ( result == Result::eIncomplete );
80497     if ( result == Result::eSuccess )
80498     {
80499       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
80500       properties.resize( propertyCount );
80501     }
80502     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
80503   }
80504 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80505 
80506   template<typename Dispatch>
enumerateInstanceVersion(uint32_t * pApiVersion,Dispatch const & d)80507   VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d) VULKAN_HPP_NOEXCEPT
80508   {
80509     return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
80510   }
80511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80512   template<typename Dispatch>
enumerateInstanceVersion(Dispatch const & d)80513   VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d )
80514   {
80515     uint32_t apiVersion;
80516     Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
80517     return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceVersion" );
80518   }
80519 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80520 
80521 
80522   template <typename Dispatch>
begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo,Dispatch const & d) const80523   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80524   {
80525     return static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( pBeginInfo ) ) );
80526   }
80527 
80528 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80529   template <typename Dispatch>
begin(const CommandBufferBeginInfo & beginInfo,Dispatch const & d) const80530   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const
80531   {
80532     Result result = static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
80533     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
80534   }
80535 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80536 
80537 
80538   template <typename Dispatch>
beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,Dispatch const & d) const80539   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80540   {
80541     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( pConditionalRenderingBegin ) );
80542   }
80543 
80544 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80545   template <typename Dispatch>
beginConditionalRenderingEXT(const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,Dispatch const & d) const80546   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80547   {
80548     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) );
80549   }
80550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80551 
80552 
80553   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const80554   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80555   {
80556     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
80557   }
80558 
80559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80560   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const80561   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80562   {
80563     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
80564   }
80565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80566 
80567 
80568   template <typename Dispatch>
beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,Dispatch const & d) const80569   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
80570   {
80571     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
80572   }
80573 
80574 
80575   template <typename Dispatch>
beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index,Dispatch const & d) const80576   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
80577   {
80578     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
80579   }
80580 
80581 
80582   template <typename Dispatch>
beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const80583   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80584   {
80585     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), static_cast<VkSubpassContents>( contents ) );
80586   }
80587 
80588 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80589   template <typename Dispatch>
beginRenderPass(const RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const80590   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80591   {
80592     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
80593   }
80594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80595 
80596 
80597   template <typename Dispatch>
beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const80598   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
80599   {
80600     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
80601   }
80602 
80603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80604   template <typename Dispatch>
beginRenderPass2(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const80605   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80606   {
80607     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
80608   }
80609 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80610 
80611   template <typename Dispatch>
beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const80612   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
80613   {
80614     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
80615   }
80616 
80617 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80618   template <typename Dispatch>
beginRenderPass2KHR(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const80619   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80620   {
80621     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
80622   }
80623 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80624 
80625 
80626   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) const80627   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
80628   {
80629     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
80630   }
80631 
80632 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80633   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) const80634   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
80635   {
80636 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80637     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
80638 #else
80639     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
80640   {
80641     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
80642   }
80643 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
80644 
80645     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
80646   }
80647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80648 
80649 
80650   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) const80651   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
80652   {
80653     d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
80654   }
80655 
80656 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80657   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) const80658   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
80659   {
80660     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() );
80661   }
80662 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80663 
80664 
80665   template <typename Dispatch>
bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const80666   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
80667   {
80668     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
80669   }
80670 
80671 
80672   template <typename Dispatch>
bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const80673   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80674   {
80675     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
80676   }
80677 
80678 
80679   template <typename Dispatch>
bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex,Dispatch const & d) const80680   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
80681   {
80682     d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ), groupIndex );
80683   }
80684 
80685 
80686   template <typename Dispatch>
bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const80687   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80688   {
80689     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
80690   }
80691 
80692 
80693   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) const80694   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
80695   {
80696     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ), reinterpret_cast<const VkDeviceSize *>( pSizes ) );
80697   }
80698 
80699 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80700   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) const80701   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
80702   {
80703 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80704     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
80705     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
80706 #else
80707     if ( buffers.size() != offsets.size() )
80708   {
80709     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
80710   }
80711     if ( !sizes.empty() && buffers.size() != sizes.size() )
80712   {
80713     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
80714   }
80715 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
80716 
80717     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() ) );
80718   }
80719 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80720 
80721 
80722   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) const80723   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
80724   {
80725     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ) );
80726   }
80727 
80728 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80729   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) const80730   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
80731   {
80732 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80733     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
80734 #else
80735     if ( buffers.size() != offsets.size() )
80736   {
80737     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
80738   }
80739 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
80740 
80741     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast<const VkBuffer *>( buffers.data() ), reinterpret_cast<const VkDeviceSize *>( offsets.data() ) );
80742   }
80743 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80744 
80745 
80746   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) const80747   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
80748   {
80749     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 ) );
80750   }
80751 
80752 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80753   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) const80754   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
80755   {
80756 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80757     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
80758     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
80759     VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
80760 #else
80761     if ( buffers.size() != offsets.size() )
80762   {
80763     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" );
80764   }
80765     if ( !sizes.empty() && buffers.size() != sizes.size() )
80766   {
80767     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" );
80768   }
80769     if ( !strides.empty() && buffers.size() != strides.size() )
80770   {
80771     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" );
80772   }
80773 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
80774 
80775     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() ) );
80776   }
80777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80778 
80779 
80780   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) const80781   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
80782   {
80783     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 ) );
80784   }
80785 
80786 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80787   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) const80788   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
80789   {
80790     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 ) );
80791   }
80792 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80793 
80794 
80795   template <typename Dispatch>
blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR * pBlitImageInfo,Dispatch const & d) const80796   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80797   {
80798     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( pBlitImageInfo ) );
80799   }
80800 
80801 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80802   template <typename Dispatch>
blitImage2KHR(const BlitImageInfo2KHR & blitImageInfo,Dispatch const & d) const80803   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80804   {
80805     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( &blitImageInfo ) );
80806   }
80807 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80808 
80809 
80810 #ifdef VK_ENABLE_BETA_EXTENSIONS
80811   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) const80812   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
80813   {
80814     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfo ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
80815   }
80816 
80817 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80818   template <typename Dispatch>
buildAccelerationStructureIndirectKHR(const AccelerationStructureBuildGeometryInfoKHR & info,VULKAN_HPP_NAMESPACE::Buffer indirectBuffer,VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset,uint32_t indirectStride,Dispatch const & d) const80819   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
80820   {
80821     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( &info ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
80822   }
80823 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80824 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
80825 
80826 
80827 #ifdef VK_ENABLE_BETA_EXTENSIONS
80828   template <typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const80829   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
80830   {
80831     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( ppOffsetInfos ) );
80832   }
80833 
80834 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80835   template <typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> const & pOffsetInfos,Dispatch const & d) const80836   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
80837   {
80838 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80839     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
80840 #else
80841     if ( infos.size() != pOffsetInfos.size() )
80842   {
80843     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
80844   }
80845 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
80846 
80847     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( pOffsetInfos.data() ) );
80848   }
80849 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80850 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
80851 
80852 
80853   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) const80854   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
80855   {
80856     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 ) );
80857   }
80858 
80859 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80860   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) const80861   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
80862   {
80863     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 ) );
80864   }
80865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80866 
80867 
80868   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) const80869   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
80870   {
80871     d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast<const VkClearAttachment *>( pAttachments ), rectCount, reinterpret_cast<const VkClearRect *>( pRects ) );
80872   }
80873 
80874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80875   template <typename Dispatch>
clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects,Dispatch const & d) const80876   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
80877   {
80878     d.vkCmdClearAttachments( m_commandBuffer, attachments.size(), reinterpret_cast<const VkClearAttachment *>( attachments.data() ), rects.size(), reinterpret_cast<const VkClearRect *>( rects.data() ) );
80879   }
80880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80881 
80882 
80883   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) const80884   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
80885   {
80886     d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue *>( pColor ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
80887   }
80888 
80889 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80890   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) const80891   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
80892   {
80893     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() ) );
80894   }
80895 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80896 
80897 
80898   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) const80899   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
80900   {
80901     d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue *>( pDepthStencil ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
80902   }
80903 
80904 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80905   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) const80906   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
80907   {
80908     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() ) );
80909   }
80910 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80911 
80912 
80913 #ifdef VK_ENABLE_BETA_EXTENSIONS
80914   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const80915   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80916   {
80917     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) );
80918   }
80919 
80920 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80921   template <typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const80922   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80923   {
80924     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
80925   }
80926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80927 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
80928 
80929 
80930   template <typename Dispatch>
copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,Dispatch const & d) const80931   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
80932   {
80933     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkCopyAccelerationStructureModeKHR>( mode ) );
80934   }
80935 
80936 
80937 #ifdef VK_ENABLE_BETA_EXTENSIONS
80938   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const80939   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80940   {
80941     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) );
80942   }
80943 
80944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80945   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const80946   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80947   {
80948     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
80949   }
80950 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80951 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
80952 
80953 
80954   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) const80955   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
80956   {
80957     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferCopy *>( pRegions ) );
80958   }
80959 
80960 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80961   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) const80962   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
80963   {
80964     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferCopy *>( regions.data() ) );
80965   }
80966 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80967 
80968 
80969   template <typename Dispatch>
copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR * pCopyBufferInfo,Dispatch const & d) const80970   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
80971   {
80972     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( pCopyBufferInfo ) );
80973   }
80974 
80975 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80976   template <typename Dispatch>
copyBuffer2KHR(const CopyBufferInfo2KHR & copyBufferInfo,Dispatch const & d) const80977   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
80978   {
80979     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( &copyBufferInfo ) );
80980   }
80981 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80982 
80983 
80984   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) const80985   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
80986   {
80987     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
80988   }
80989 
80990 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
80991   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) const80992   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
80993   {
80994     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
80995   }
80996 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
80997 
80998 
80999   template <typename Dispatch>
copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR * pCopyBufferToImageInfo,Dispatch const & d) const81000   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81001   {
81002     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( pCopyBufferToImageInfo ) );
81003   }
81004 
81005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81006   template <typename Dispatch>
copyBufferToImage2KHR(const CopyBufferToImageInfo2KHR & copyBufferToImageInfo,Dispatch const & d) const81007   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81008   {
81009     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( &copyBufferToImageInfo ) );
81010   }
81011 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81012 
81013 
81014   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) const81015   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
81016   {
81017     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 ) );
81018   }
81019 
81020 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81021   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) const81022   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
81023   {
81024     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() ) );
81025   }
81026 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81027 
81028 
81029   template <typename Dispatch>
copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR * pCopyImageInfo,Dispatch const & d) const81030   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81031   {
81032     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( pCopyImageInfo ) );
81033   }
81034 
81035 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81036   template <typename Dispatch>
copyImage2KHR(const CopyImageInfo2KHR & copyImageInfo,Dispatch const & d) const81037   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81038   {
81039     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( &copyImageInfo ) );
81040   }
81041 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81042 
81043 
81044   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) const81045   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
81046   {
81047     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
81048   }
81049 
81050 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81051   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) const81052   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
81053   {
81054     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
81055   }
81056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81057 
81058 
81059   template <typename Dispatch>
copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR * pCopyImageToBufferInfo,Dispatch const & d) const81060   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81061   {
81062     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( pCopyImageToBufferInfo ) );
81063   }
81064 
81065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81066   template <typename Dispatch>
copyImageToBuffer2KHR(const CopyImageToBufferInfo2KHR & copyImageToBufferInfo,Dispatch const & d) const81067   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81068   {
81069     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( &copyImageToBufferInfo ) );
81070   }
81071 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81072 
81073 
81074 #ifdef VK_ENABLE_BETA_EXTENSIONS
81075   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const81076   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81077   {
81078     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) );
81079   }
81080 
81081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81082   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const81083   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81084   {
81085     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
81086   }
81087 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81088 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81089 
81090 
81091   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) const81092   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
81093   {
81094     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 ) );
81095   }
81096 
81097 
81098   template <typename Dispatch>
debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const81099   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81100   {
81101     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
81102   }
81103 
81104 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81105   template <typename Dispatch>
debugMarkerBeginEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const81106   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81107   {
81108     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
81109   }
81110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81111 
81112 
81113   template <typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const81114   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81115   {
81116     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
81117   }
81118 
81119 
81120   template <typename Dispatch>
debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const81121   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81122   {
81123     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
81124   }
81125 
81126 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81127   template <typename Dispatch>
debugMarkerInsertEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const81128   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81129   {
81130     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
81131   }
81132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81133 
81134 
81135   template <typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const81136   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81137   {
81138     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
81139   }
81140 
81141 
81142   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) const81143   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
81144   {
81145     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
81146   }
81147 
81148   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) const81149   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
81150   {
81151     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
81152   }
81153 
81154 
81155   template <typename Dispatch>
dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const81156   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81157   {
81158     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
81159   }
81160 
81161 
81162   template <typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const81163   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
81164   {
81165     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
81166   }
81167 
81168 
81169   template <typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const81170   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
81171   {
81172     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
81173   }
81174 
81175 
81176   template <typename Dispatch>
drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const81177   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
81178   {
81179     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
81180   }
81181 
81182 
81183   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) const81184   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
81185   {
81186     d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
81187   }
81188 
81189   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) const81190   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
81191   {
81192     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
81193   }
81194 
81195   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) const81196   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
81197   {
81198     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
81199   }
81200 
81201 
81202   template <typename Dispatch>
drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const81203   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
81204   {
81205     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
81206   }
81207 
81208 
81209   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) const81210   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
81211   {
81212     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
81213   }
81214 
81215 
81216   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) const81217   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
81218   {
81219     d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
81220   }
81221 
81222   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) const81223   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
81224   {
81225     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
81226   }
81227 
81228   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) const81229   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
81230   {
81231     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
81232   }
81233 
81234 
81235   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) const81236   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
81237   {
81238     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
81239   }
81240 
81241 
81242   template <typename Dispatch>
drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const81243   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
81244   {
81245     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
81246   }
81247 
81248 
81249   template <typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const81250   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81251   {
81252     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
81253   }
81254 
81255 
81256   template <typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const81257   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81258   {
81259     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
81260   }
81261 
81262 
81263   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const81264   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81265   {
81266     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
81267   }
81268 
81269 
81270   template <typename Dispatch>
endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const81271   VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81272   {
81273     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
81274   }
81275 
81276 
81277   template <typename Dispatch>
endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const81278   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81279   {
81280     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
81281   }
81282 
81283 
81284   template <typename Dispatch>
endRenderPass(Dispatch const & d) const81285   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81286   {
81287     d.vkCmdEndRenderPass( m_commandBuffer );
81288   }
81289 
81290 
81291   template <typename Dispatch>
endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const81292   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81293   {
81294     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
81295   }
81296 
81297 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81298   template <typename Dispatch>
endRenderPass2(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const81299   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81300   {
81301     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
81302   }
81303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81304 
81305   template <typename Dispatch>
endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const81306   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81307   {
81308     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
81309   }
81310 
81311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81312   template <typename Dispatch>
endRenderPass2KHR(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const81313   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81314   {
81315     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
81316   }
81317 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81318 
81319 
81320   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) const81321   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
81322   {
81323     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
81324   }
81325 
81326 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81327   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) const81328   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
81329   {
81330 #ifdef VULKAN_HPP_NO_EXCEPTIONS
81331     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
81332 #else
81333     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
81334   {
81335     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
81336   }
81337 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
81338 
81339     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
81340   }
81341 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81342 
81343 
81344   template <typename Dispatch>
executeCommands(uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const81345   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81346   {
81347     d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
81348   }
81349 
81350 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81351   template <typename Dispatch>
executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const81352   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81353   {
81354     d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
81355   }
81356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81357 
81358 
81359   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const81360   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81361   {
81362     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
81363   }
81364 
81365 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81366   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const81367   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81368   {
81369     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
81370   }
81371 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81372 
81373 
81374   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) const81375   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
81376   {
81377     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
81378   }
81379 
81380 
81381   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const81382   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81383   {
81384     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
81385   }
81386 
81387 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81388   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const81389   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81390   {
81391     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
81392   }
81393 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81394 
81395 
81396   template <typename Dispatch>
nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const81397   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81398   {
81399     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
81400   }
81401 
81402 
81403   template <typename Dispatch>
nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const81404   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
81405   {
81406     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
81407   }
81408 
81409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81410   template <typename Dispatch>
nextSubpass2(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const81411   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81412   {
81413     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
81414   }
81415 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81416 
81417   template <typename Dispatch>
nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const81418   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
81419   {
81420     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
81421   }
81422 
81423 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81424   template <typename Dispatch>
nextSubpass2KHR(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const81425   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81426   {
81427     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
81428   }
81429 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81430 
81431 
81432   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) const81433   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
81434   {
81435     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 ) );
81436   }
81437 
81438 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81439   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) const81440   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
81441   {
81442     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() ) );
81443   }
81444 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81445 
81446 
81447   template <typename Dispatch>
preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const81448   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81449   {
81450     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
81451   }
81452 
81453 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81454   template <typename Dispatch>
preprocessGeneratedCommandsNV(const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const81455   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81456   {
81457     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
81458   }
81459 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81460 
81461 
81462   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) const81463   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
81464   {
81465     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, size, pValues );
81466   }
81467 
81468 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81469   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) const81470   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
81471   {
81472     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, values.size() * sizeof( T ), reinterpret_cast<const void *>( values.data() ) );
81473   }
81474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81475 
81476 
81477   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) const81478   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
81479   {
81480     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ) );
81481   }
81482 
81483 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81484   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) const81485   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
81486   {
81487     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) );
81488   }
81489 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81490 
81491 
81492   template <typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const81493   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
81494   {
81495     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
81496   }
81497 
81498 
81499   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const81500   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81501   {
81502     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
81503   }
81504 
81505 
81506   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const81507   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81508   {
81509     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
81510   }
81511 
81512 
81513   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) const81514   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
81515   {
81516     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 ) );
81517   }
81518 
81519 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81520   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) const81521   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
81522   {
81523     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() ) );
81524   }
81525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81526 
81527 
81528   template <typename Dispatch>
resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR * pResolveImageInfo,Dispatch const & d) const81529   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81530   {
81531     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( pResolveImageInfo ) );
81532   }
81533 
81534 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81535   template <typename Dispatch>
resolveImage2KHR(const ResolveImageInfo2KHR & resolveImageInfo,Dispatch const & d) const81536   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81537   {
81538     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( &resolveImageInfo ) );
81539   }
81540 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81541 
81542 
81543   template <typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const81544   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81545   {
81546     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
81547   }
81548 
81549 
81550   template <typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const81551   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81552   {
81553     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
81554   }
81555 
81556 
81557   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,Dispatch const & d) const81558   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
81559   {
81560     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( pCustomSampleOrders ) );
81561   }
81562 
81563 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81564   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders,Dispatch const & d) const81565   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
81566   {
81567     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size(), reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( customSampleOrders.data() ) );
81568   }
81569 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81570 
81571 
81572   template <typename Dispatch>
setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,Dispatch const & d) const81573   VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81574   {
81575     d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast<VkCullModeFlags>( cullMode ) );
81576   }
81577 
81578 
81579   template <typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const81580   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81581   {
81582     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
81583   }
81584 
81585 
81586   template <typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const81587   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81588   {
81589     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
81590   }
81591 
81592 
81593   template <typename Dispatch>
setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,Dispatch const & d) const81594   VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81595   {
81596     d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthBoundsTestEnable ) );
81597   }
81598 
81599 
81600   template <typename Dispatch>
setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,Dispatch const & d) const81601   VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81602   {
81603     d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast<VkCompareOp>( depthCompareOp ) );
81604   }
81605 
81606 
81607   template <typename Dispatch>
setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,Dispatch const & d) const81608   VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81609   {
81610     d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthTestEnable ) );
81611   }
81612 
81613 
81614   template <typename Dispatch>
setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,Dispatch const & d) const81615   VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81616   {
81617     d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthWriteEnable ) );
81618   }
81619 
81620 
81621   template <typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const81622   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81623   {
81624     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
81625   }
81626 
81627   template <typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const81628   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81629   {
81630     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
81631   }
81632 
81633 
81634   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,Dispatch const & d) const81635   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
81636   {
81637     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D *>( pDiscardRectangles ) );
81638   }
81639 
81640 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81641   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles,Dispatch const & d) const81642   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81643   {
81644     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size(), reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) );
81645   }
81646 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81647 
81648 
81649   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const81650   VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81651   {
81652     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
81653   }
81654 
81655 
81656   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,Dispatch const & d) const81657   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
81658   {
81659     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D *>( pExclusiveScissors ) );
81660   }
81661 
81662 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81663   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors,Dispatch const & d) const81664   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81665   {
81666     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast<const VkRect2D *>( exclusiveScissors.data() ) );
81667   }
81668 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81669 
81670 
81671   template <typename Dispatch>
setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace,Dispatch const & d) const81672   VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81673   {
81674     d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast<VkFrontFace>( frontFace ) );
81675   }
81676 
81677 
81678   template <typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const81679   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81680   {
81681     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
81682   }
81683 
81684 
81685   template <typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const81686   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81687   {
81688     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
81689   }
81690 
81691 
81692   template <typename Dispatch>
setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const81693   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81694   {
81695     return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( pMarkerInfo ) ) );
81696   }
81697 
81698 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81699   template <typename Dispatch>
setPerformanceMarkerINTEL(const PerformanceMarkerInfoINTEL & markerInfo,Dispatch const & d) const81700   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
81701   {
81702     Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
81703     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
81704   }
81705 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81706 
81707 
81708   template <typename Dispatch>
setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo,Dispatch const & d) const81709   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81710   {
81711     return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( pOverrideInfo ) ) );
81712   }
81713 
81714 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81715   template <typename Dispatch>
setPerformanceOverrideINTEL(const PerformanceOverrideInfoINTEL & overrideInfo,Dispatch const & d) const81716   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d ) const
81717   {
81718     Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
81719     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
81720   }
81721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81722 
81723 
81724   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const81725   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81726   {
81727     return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( pMarkerInfo ) ) );
81728   }
81729 
81730 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81731   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const PerformanceStreamMarkerInfoINTEL & markerInfo,Dispatch const & d) const81732   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
81733   {
81734     Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
81735     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
81736   }
81737 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81738 
81739 
81740   template <typename Dispatch>
setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,Dispatch const & d) const81741   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81742   {
81743     d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast<VkPrimitiveTopology>( primitiveTopology ) );
81744   }
81745 
81746 
81747   template <typename Dispatch>
setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,Dispatch const & d) const81748   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81749   {
81750     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( pSampleLocationsInfo ) );
81751   }
81752 
81753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81754   template <typename Dispatch>
setSampleLocationsEXT(const SampleLocationsInfoEXT & sampleLocationsInfo,Dispatch const & d) const81755   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81756   {
81757     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) );
81758   }
81759 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81760 
81761 
81762   template <typename Dispatch>
setScissor(uint32_t firstScissor,uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const81763   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
81764   {
81765     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
81766   }
81767 
81768 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81769   template <typename Dispatch>
setScissor(uint32_t firstScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const81770   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81771   {
81772     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
81773   }
81774 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81775 
81776 
81777   template <typename Dispatch>
setScissorWithCountEXT(uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const81778   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81779   {
81780     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
81781   }
81782 
81783 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81784   template <typename Dispatch>
setScissorWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const81785   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81786   {
81787     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
81788   }
81789 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81790 
81791 
81792   template <typename Dispatch>
setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const81793   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81794   {
81795     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
81796   }
81797 
81798 
81799   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) const81800   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
81801   {
81802     d.vkCmdSetStencilOpEXT( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), static_cast<VkStencilOp>( failOp ), static_cast<VkStencilOp>( passOp ), static_cast<VkStencilOp>( depthFailOp ), static_cast<VkCompareOp>( compareOp ) );
81803   }
81804 
81805 
81806   template <typename Dispatch>
setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const81807   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81808   {
81809     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
81810   }
81811 
81812 
81813   template <typename Dispatch>
setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,Dispatch const & d) const81814   VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81815   {
81816     d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( stencilTestEnable ) );
81817   }
81818 
81819 
81820   template <typename Dispatch>
setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const81821   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81822   {
81823     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
81824   }
81825 
81826 
81827   template <typename Dispatch>
setViewport(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const81828   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
81829   {
81830     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
81831   }
81832 
81833 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81834   template <typename Dispatch>
setViewport(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const81835   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81836   {
81837     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
81838   }
81839 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81840 
81841 
81842   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,Dispatch const & d) const81843   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
81844   {
81845     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV *>( pShadingRatePalettes ) );
81846   }
81847 
81848 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81849   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes,Dispatch const & d) const81850   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81851   {
81852     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size(), reinterpret_cast<const VkShadingRatePaletteNV *>( shadingRatePalettes.data() ) );
81853   }
81854 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81855 
81856 
81857   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,Dispatch const & d) const81858   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
81859   {
81860     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV *>( pViewportWScalings ) );
81861   }
81862 
81863 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81864   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings,Dispatch const & d) const81865   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81866   {
81867     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size(), reinterpret_cast<const VkViewportWScalingNV *>( viewportWScalings.data() ) );
81868   }
81869 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81870 
81871 
81872   template <typename Dispatch>
setViewportWithCountEXT(uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const81873   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81874   {
81875     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
81876   }
81877 
81878 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81879   template <typename Dispatch>
setViewportWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const81880   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81881   {
81882     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
81883   }
81884 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81885 
81886 
81887 #ifdef VK_ENABLE_BETA_EXTENSIONS
81888   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) const81889   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
81890   {
81891     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 ) );
81892   }
81893 
81894 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81895   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) const81896   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
81897   {
81898     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 ) );
81899   }
81900 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81901 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81902 
81903 
81904 #ifdef VK_ENABLE_BETA_EXTENSIONS
81905   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) const81906   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
81907   {
81908     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 );
81909   }
81910 
81911 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81912   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) const81913   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
81914   {
81915     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 );
81916   }
81917 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81918 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81919 
81920 
81921   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) const81922   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
81923   {
81924     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 );
81925   }
81926 
81927 
81928   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) const81929   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
81930   {
81931     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( dataSize ), pData );
81932   }
81933 
81934 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81935   template <typename T, typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,ArrayProxy<const T> const & data,Dispatch const & d) const81936   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
81937   {
81938     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), data.size() * sizeof( T ), reinterpret_cast<const void *>( data.data() ) );
81939   }
81940 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81941 
81942 
81943   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) const81944   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
81945   {
81946     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 ) );
81947   }
81948 
81949 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81950   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) const81951   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
81952   {
81953     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() ) );
81954   }
81955 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81956 
81957 
81958 #ifdef VK_ENABLE_BETA_EXTENSIONS
81959   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) const81960   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
81961   {
81962     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
81963   }
81964 
81965 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81966   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) const81967   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
81968   {
81969     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
81970   }
81971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81972 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
81973 
81974   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) const81975   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
81976   {
81977     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
81978   }
81979 
81980 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81981   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) const81982   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
81983   {
81984     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
81985   }
81986 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81987 
81988 
81989   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) const81990   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
81991   {
81992     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
81993   }
81994 
81995 
81996   template <typename Dispatch>
writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const81997   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
81998   {
81999     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
82000   }
82001 
82002 
82003 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82004   template <typename Dispatch>
end(Dispatch const & d) const82005   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82006   {
82007     return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
82008   }
82009 #else
82010   template <typename Dispatch>
end(Dispatch const & d) const82011   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::end( Dispatch const & d ) const
82012   {
82013     Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
82014     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
82015   }
82016 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82017 
82018 
82019 
82020 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82021   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const82022   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82023   {
82024     return static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
82025   }
82026 #else
82027   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const82028   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const
82029   {
82030     Result result = static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
82031     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
82032   }
82033 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82034 
82035 
82036 
82037 #ifdef VK_USE_PLATFORM_WIN32_KHR
82038 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82039   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const82040   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82041   {
82042     return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
82043   }
82044 #else
82045   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const82046   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
82047   {
82048     Result result = static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
82049     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
82050   }
82051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82052 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
82053 
82054 
82055   template<typename Dispatch>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,Dispatch const & d) const82056   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
82057   {
82058     return static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( pAcquireInfo ), pImageIndex ) );
82059   }
82060 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82061   template<typename Dispatch>
acquireNextImage2KHR(const AcquireNextImageInfoKHR & acquireInfo,Dispatch const & d) const82062   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d ) const
82063   {
82064     uint32_t imageIndex;
82065     Result result = static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( &acquireInfo ), &imageIndex ) );
82066     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImage2KHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
82067   }
82068 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82069 
82070   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) const82071   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
82072   {
82073     return static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), pImageIndex ) );
82074   }
82075 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82076   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) const82077   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
82078   {
82079     uint32_t imageIndex;
82080     Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
82081     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImageKHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
82082   }
82083 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82084 
82085   template<typename Dispatch>
acquirePerformanceConfigurationINTEL(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration,Dispatch const & d) const82086   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
82087   {
82088     return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( pAcquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( pConfiguration ) ) );
82089   }
82090 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82091   template<typename Dispatch>
acquirePerformanceConfigurationINTEL(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const82092   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
82093   {
82094     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
82095     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( &configuration ) ) );
82096     return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING"::Device::acquirePerformanceConfigurationINTEL" );
82097   }
82098 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82099 
82100 
82101   template <typename Dispatch>
acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo,Dispatch const & d) const82102   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82103   {
82104     return static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( pInfo ) ) );
82105   }
82106 
82107 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82108   template <typename Dispatch>
acquireProfilingLockKHR(const AcquireProfilingLockInfoKHR & info,Dispatch const & d) const82109   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const
82110   {
82111     Result result = static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
82112     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
82113   }
82114 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82115 
82116   template<typename Dispatch>
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const82117   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
82118   {
82119     return static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkCommandBuffer*>( pCommandBuffers ) ) );
82120   }
82121 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82122   template<typename Allocator , typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const82123   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
82124   {
82125     std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount );
82126     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
82127     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
82128   }
82129   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CommandBuffer>::value, int>::type>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const82130   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82131   {
82132     std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount, vectorAllocator );
82133     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
82134     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
82135   }
82136 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82137   template<typename Dispatch, typename Allocator >
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const82138   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
82139   {
82140     std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> uniqueCommandBuffers;
82141     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
82142     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>(commandBuffers.data()) ) );
82143     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
82144     {
82145       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
82146       PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
82147       for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
82148       {
82149         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
82150       }
82151     }
82152 
82153     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
82154   }
82155   template<typename Dispatch, typename Allocator , typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const82156   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82157   {
82158     std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> uniqueCommandBuffers( vectorAllocator );
82159     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
82160     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>(commandBuffers.data()) ) );
82161     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
82162     {
82163       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
82164       PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
82165       for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
82166       {
82167         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
82168       }
82169     }
82170 
82171     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
82172   }
82173 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82174 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82175 
82176   template<typename Dispatch>
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const82177   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
82178   {
82179     return static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkDescriptorSet*>( pDescriptorSets ) ) );
82180   }
82181 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82182   template<typename Allocator , typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const82183   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
82184   {
82185     std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount );
82186     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
82187     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
82188   }
82189   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DescriptorSet>::value, int>::type>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const82190   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82191   {
82192     std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount, vectorAllocator );
82193     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
82194     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
82195   }
82196 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82197   template<typename Dispatch, typename Allocator >
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const82198   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
82199   {
82200     std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> uniqueDescriptorSets;
82201     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
82202     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>(descriptorSets.data()) ) );
82203     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
82204     {
82205       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
82206       PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
82207       for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
82208       {
82209         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
82210       }
82211     }
82212 
82213     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
82214   }
82215   template<typename Dispatch, typename Allocator , typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const82216   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
82217   {
82218     std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> uniqueDescriptorSets( vectorAllocator );
82219     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
82220     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>(descriptorSets.data()) ) );
82221     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
82222     {
82223       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
82224       PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
82225       for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
82226       {
82227         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
82228       }
82229     }
82230 
82231     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
82232   }
82233 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82235 
82236   template<typename Dispatch>
allocateMemory(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory,Dispatch const & d) const82237   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
82238   {
82239     return static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( pAllocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDeviceMemory*>( pMemory ) ) );
82240   }
82241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82242   template<typename Dispatch>
allocateMemory(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82243   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
82244   {
82245     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
82246     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory*>( &memory ) ) );
82247     return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemory" );
82248   }
82249 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82250   template<typename Dispatch>
allocateMemoryUnique(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82251   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82252   {
82253     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
82254     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory*>( &memory ) ) );
82255 
82256     ObjectFree<Device,Dispatch> deleter( *this, allocator, d );
82257     return createResultValue<DeviceMemory,Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemoryUnique", deleter );
82258   }
82259 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82261 
82262 
82263 #ifdef VK_ENABLE_BETA_EXTENSIONS
82264   template <typename Dispatch>
bindAccelerationStructureMemoryKHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const82265   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
82266   {
82267     return static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( pBindInfos ) ) );
82268   }
82269 
82270 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82271   template <typename Dispatch>
bindAccelerationStructureMemoryKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos,Dispatch const & d) const82272   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
82273   {
82274     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( bindInfos.data() ) ) );
82275     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryKHR" );
82276   }
82277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82278 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82279 
82280   template <typename Dispatch>
bindAccelerationStructureMemoryNV(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const82281   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
82282   {
82283     return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( pBindInfos ) ) );
82284   }
82285 
82286 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82287   template <typename Dispatch>
bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos,Dispatch const & d) const82288   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
82289   {
82290     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( bindInfos.data() ) ) );
82291     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
82292   }
82293 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82294 
82295 
82296 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82297   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const82298   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
82299   {
82300     return static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
82301   }
82302 #else
82303   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const82304   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
82305   {
82306     Result result = static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
82307     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" );
82308   }
82309 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82310 
82311 
82312 
82313   template <typename Dispatch>
bindBufferMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const82314   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
82315   {
82316     return static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
82317   }
82318 
82319 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82320   template <typename Dispatch>
bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const82321   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
82322   {
82323     Result result = static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
82324     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
82325   }
82326 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82327 
82328   template <typename Dispatch>
bindBufferMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const82329   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
82330   {
82331     return static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
82332   }
82333 
82334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82335   template <typename Dispatch>
bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const82336   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
82337   {
82338     Result result = static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
82339     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
82340   }
82341 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82342 
82343 
82344 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82345   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const82346   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
82347   {
82348     return static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
82349   }
82350 #else
82351   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const82352   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
82353   {
82354     Result result = static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
82355     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" );
82356   }
82357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82358 
82359 
82360 
82361   template <typename Dispatch>
bindImageMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const82362   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
82363   {
82364     return static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
82365   }
82366 
82367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82368   template <typename Dispatch>
bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const82369   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
82370   {
82371     Result result = static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
82372     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
82373   }
82374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82375 
82376   template <typename Dispatch>
bindImageMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const82377   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
82378   {
82379     return static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
82380   }
82381 
82382 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82383   template <typename Dispatch>
bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const82384   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
82385   {
82386     Result result = static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
82387     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
82388   }
82389 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82390 
82391 #ifdef VK_ENABLE_BETA_EXTENSIONS
82392   template<typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const82393   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
82394   {
82395     return static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR* const*>( ppOffsetInfos ) ) );
82396   }
82397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82398   template<typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> const & pOffsetInfos,Dispatch const & d) const82399   VULKAN_HPP_NODISCARD 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
82400   {
82401 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82402     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
82403 #else
82404     if ( infos.size() != pOffsetInfos.size() )
82405     {
82406       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
82407     }
82408 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82409     Result result = static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infos.size() , reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR* const*>( pOffsetInfos.data() ) ) );
82410     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::buildAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
82411   }
82412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82413 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82414 
82415 
82416 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
82417   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const82418   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82419   {
82420     return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
82421   }
82422 #else
82423   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const82424   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
82425   {
82426     Result result = static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
82427     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
82428   }
82429 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82430 
82431 
82432 
82433 #ifdef VK_ENABLE_BETA_EXTENSIONS
82434   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const82435   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82436   {
82437     return static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) ) );
82438   }
82439 
82440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82441   template <typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const82442   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const
82443   {
82444     Result result = static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) );
82445     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
82446   }
82447 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82448 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82449 
82450 
82451 #ifdef VK_ENABLE_BETA_EXTENSIONS
82452   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const82453   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82454   {
82455     return static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) ) );
82456   }
82457 
82458 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82459   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const82460   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const
82461   {
82462     Result result = static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) );
82463     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
82464   }
82465 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82466 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82467 
82468 
82469 #ifdef VK_ENABLE_BETA_EXTENSIONS
82470   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const82471   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82472   {
82473     return static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) ) );
82474   }
82475 
82476 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82477   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const82478   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const
82479   {
82480     Result result = static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) );
82481     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } );
82482   }
82483 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82484 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82485 
82486 #ifdef VK_ENABLE_BETA_EXTENSIONS
82487   template<typename Dispatch>
createAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure,Dispatch const & d) const82488   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
82489   {
82490     return static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkAccelerationStructureKHR*>( pAccelerationStructure ) ) );
82491   }
82492 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82493   template<typename Dispatch>
createAccelerationStructureKHR(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82494   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
82495   {
82496     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
82497     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR*>( &accelerationStructure ) ) );
82498     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureKHR" );
82499   }
82500 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82501   template<typename Dispatch>
createAccelerationStructureKHRUnique(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82502   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<AccelerationStructureKHR,Dispatch>>::type Device::createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82503   {
82504     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
82505     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR*>( &accelerationStructure ) ) );
82506 
82507     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82508     return createResultValue<AccelerationStructureKHR,Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureKHRUnique", deleter );
82509   }
82510 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82511 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82512 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82513 
82514   template<typename Dispatch>
createAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure,Dispatch const & d) const82515   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
82516   {
82517     return static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkAccelerationStructureNV*>( pAccelerationStructure ) ) );
82518   }
82519 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82520   template<typename Dispatch>
createAccelerationStructureNV(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82521   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82522   {
82523     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
82524     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV*>( &accelerationStructure ) ) );
82525     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNV" );
82526   }
82527 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82528   template<typename Dispatch>
createAccelerationStructureNVUnique(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82529   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<AccelerationStructureNV,Dispatch>>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82530   {
82531     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
82532     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV*>( &accelerationStructure ) ) );
82533 
82534     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82535     return createResultValue<AccelerationStructureNV,Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNVUnique", deleter );
82536   }
82537 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82539 
82540   template<typename Dispatch>
createBuffer(const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Buffer * pBuffer,Dispatch const & d) const82541   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
82542   {
82543     return static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBuffer*>( pBuffer ) ) );
82544   }
82545 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82546   template<typename Dispatch>
createBuffer(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82547   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
82548   {
82549     VULKAN_HPP_NAMESPACE::Buffer buffer;
82550     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer*>( &buffer ) ) );
82551     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBuffer" );
82552   }
82553 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82554   template<typename Dispatch>
createBufferUnique(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82555   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82556   {
82557     VULKAN_HPP_NAMESPACE::Buffer buffer;
82558     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer*>( &buffer ) ) );
82559 
82560     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82561     return createResultValue<Buffer,Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferUnique", deleter );
82562   }
82563 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82565 
82566   template<typename Dispatch>
createBufferView(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::BufferView * pView,Dispatch const & d) const82567   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
82568   {
82569     return static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBufferView*>( pView ) ) );
82570   }
82571 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82572   template<typename Dispatch>
createBufferView(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82573   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
82574   {
82575     VULKAN_HPP_NAMESPACE::BufferView view;
82576     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView*>( &view ) ) );
82577     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferView" );
82578   }
82579 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82580   template<typename Dispatch>
createBufferViewUnique(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82581   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82582   {
82583     VULKAN_HPP_NAMESPACE::BufferView view;
82584     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView*>( &view ) ) );
82585 
82586     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82587     return createResultValue<BufferView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferViewUnique", deleter );
82588   }
82589 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82590 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82591 
82592   template<typename Dispatch>
createCommandPool(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool,Dispatch const & d) const82593   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
82594   {
82595     return static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkCommandPool*>( pCommandPool ) ) );
82596   }
82597 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82598   template<typename Dispatch>
createCommandPool(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82599   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
82600   {
82601     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
82602     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool*>( &commandPool ) ) );
82603     return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPool" );
82604   }
82605 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82606   template<typename Dispatch>
createCommandPoolUnique(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82607   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82608   {
82609     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
82610     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool*>( &commandPool ) ) );
82611 
82612     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82613     return createResultValue<CommandPool,Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPoolUnique", deleter );
82614   }
82615 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82616 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82617 
82618   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) const82619   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
82620   {
82621     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 ) ) );
82622   }
82623 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82624   template<typename Allocator , typename Dispatch>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82625   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82626   {
82627     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
82628     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
82629     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
82630   }
82631   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const82632   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
82633   {
82634     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
82635     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
82636     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
82637   }
82638   template<typename Dispatch>
createComputePipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82639   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
82640   {
82641     Pipeline pipeline;
82642     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
82643     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipeline", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
82644   }
82645 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82646   template<typename Dispatch, typename Allocator >
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82647   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82648   {
82649     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
82650     std::vector<Pipeline> pipelines( createInfos.size() );
82651     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
82652     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
82653     {
82654       uniquePipelines.reserve( createInfos.size() );
82655       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82656       for ( size_t i=0 ; i<createInfos.size() ; i++ )
82657       {
82658         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
82659       }
82660     }
82661 
82662     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
82663   }
82664   template<typename Dispatch, typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const82665   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
82666   {
82667     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
82668     std::vector<Pipeline> pipelines( createInfos.size() );
82669     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
82670     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
82671     {
82672       uniquePipelines.reserve( createInfos.size() );
82673       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82674       for ( size_t i=0 ; i<createInfos.size() ; i++ )
82675       {
82676         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
82677       }
82678     }
82679 
82680     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
82681   }
82682   template<typename Dispatch>
createComputePipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82683   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
82684   {
82685     Pipeline pipeline;
82686     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
82687 
82688     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82689     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelineUnique", { Result::eSuccess, Result::ePipelineCompileRequiredEXT }, deleter );
82690   }
82691 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82693 
82694 #ifdef VK_ENABLE_BETA_EXTENSIONS
82695   template<typename Dispatch>
createDeferredOperationKHR(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation,Dispatch const & d) const82696   VULKAN_HPP_INLINE Result Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
82697   {
82698     return static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDeferredOperationKHR*>( pDeferredOperation ) ) );
82699   }
82700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82701   template<typename Dispatch>
createDeferredOperationKHR(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82702   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type Device::createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82703   {
82704     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
82705     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR*>( &deferredOperation ) ) );
82706     return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING"::Device::createDeferredOperationKHR" );
82707   }
82708 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82709   template<typename Dispatch>
createDeferredOperationKHRUnique(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82710   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DeferredOperationKHR,Dispatch>>::type Device::createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82711   {
82712     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
82713     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR*>( &deferredOperation ) ) );
82714 
82715     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82716     return createResultValue<DeferredOperationKHR,Dispatch>( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING"::Device::createDeferredOperationKHRUnique", deleter );
82717   }
82718 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82719 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82720 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82721 
82722   template<typename Dispatch>
createDescriptorPool(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool,Dispatch const & d) const82723   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
82724   {
82725     return static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorPool*>( pDescriptorPool ) ) );
82726   }
82727 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82728   template<typename Dispatch>
createDescriptorPool(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82729   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
82730   {
82731     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
82732     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool*>( &descriptorPool ) ) );
82733     return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPool" );
82734   }
82735 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82736   template<typename Dispatch>
createDescriptorPoolUnique(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82737   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82738   {
82739     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
82740     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool*>( &descriptorPool ) ) );
82741 
82742     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82743     return createResultValue<DescriptorPool,Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPoolUnique", deleter );
82744   }
82745 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82747 
82748   template<typename Dispatch>
createDescriptorSetLayout(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout,Dispatch const & d) const82749   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
82750   {
82751     return static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorSetLayout*>( pSetLayout ) ) );
82752   }
82753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82754   template<typename Dispatch>
createDescriptorSetLayout(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82755   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
82756   {
82757     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
82758     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout*>( &setLayout ) ) );
82759     return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayout" );
82760   }
82761 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82762   template<typename Dispatch>
createDescriptorSetLayoutUnique(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82763   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82764   {
82765     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
82766     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout*>( &setLayout ) ) );
82767 
82768     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82769     return createResultValue<DescriptorSetLayout,Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayoutUnique", deleter );
82770   }
82771 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82773 
82774   template<typename Dispatch>
createDescriptorUpdateTemplate(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const82775   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
82776   {
82777     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
82778   }
82779 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82780   template<typename Dispatch>
createDescriptorUpdateTemplate(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82781   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
82782   {
82783     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
82784     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
82785     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplate" );
82786   }
82787 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82788   template<typename Dispatch>
createDescriptorUpdateTemplateUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82789   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82790   {
82791     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
82792     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
82793 
82794     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82795     return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateUnique", deleter );
82796   }
82797 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82799 
82800   template<typename Dispatch>
createDescriptorUpdateTemplateKHR(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const82801   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
82802   {
82803     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
82804   }
82805 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82806   template<typename Dispatch>
createDescriptorUpdateTemplateKHR(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82807   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
82808   {
82809     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
82810     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
82811     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHR" );
82812   }
82813 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82814   template<typename Dispatch>
createDescriptorUpdateTemplateKHRUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82815   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82816   {
82817     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
82818     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
82819 
82820     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82821     return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHRUnique", deleter );
82822   }
82823 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82824 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82825 
82826   template<typename Dispatch>
createEvent(const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Event * pEvent,Dispatch const & d) const82827   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
82828   {
82829     return static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkEvent*>( pEvent ) ) );
82830   }
82831 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82832   template<typename Dispatch>
createEvent(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82833   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
82834   {
82835     VULKAN_HPP_NAMESPACE::Event event;
82836     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent*>( &event ) ) );
82837     return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEvent" );
82838   }
82839 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82840   template<typename Dispatch>
createEventUnique(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82841   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Event,Dispatch>>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82842   {
82843     VULKAN_HPP_NAMESPACE::Event event;
82844     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent*>( &event ) ) );
82845 
82846     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82847     return createResultValue<Event,Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEventUnique", deleter );
82848   }
82849 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82851 
82852   template<typename Dispatch>
createFence(const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const82853   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
82854   {
82855     return static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
82856   }
82857 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82858   template<typename Dispatch>
createFence(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82859   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
82860   {
82861     VULKAN_HPP_NAMESPACE::Fence fence;
82862     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
82863     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFence" );
82864   }
82865 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82866   template<typename Dispatch>
createFenceUnique(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82867   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82868   {
82869     VULKAN_HPP_NAMESPACE::Fence fence;
82870     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
82871 
82872     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82873     return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFenceUnique", deleter );
82874   }
82875 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82877 
82878   template<typename Dispatch>
createFramebuffer(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer,Dispatch const & d) const82879   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
82880   {
82881     return static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFramebuffer*>( pFramebuffer ) ) );
82882   }
82883 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82884   template<typename Dispatch>
createFramebuffer(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82885   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
82886   {
82887     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
82888     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer*>( &framebuffer ) ) );
82889     return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebuffer" );
82890   }
82891 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82892   template<typename Dispatch>
createFramebufferUnique(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82893   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82894   {
82895     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
82896     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer*>( &framebuffer ) ) );
82897 
82898     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82899     return createResultValue<Framebuffer,Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebufferUnique", deleter );
82900   }
82901 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82902 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82903 
82904   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) const82905   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
82906   {
82907     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 ) ) );
82908   }
82909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82910   template<typename Allocator , typename Dispatch>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82911   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82912   {
82913     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
82914     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
82915     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
82916   }
82917   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const82918   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
82919   {
82920     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
82921     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
82922     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
82923   }
82924   template<typename Dispatch>
createGraphicsPipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82925   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
82926   {
82927     Pipeline pipeline;
82928     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
82929     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipeline", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
82930   }
82931 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82932   template<typename Dispatch, typename Allocator >
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82933   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82934   {
82935     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
82936     std::vector<Pipeline> pipelines( createInfos.size() );
82937     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
82938     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
82939     {
82940       uniquePipelines.reserve( createInfos.size() );
82941       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82942       for ( size_t i=0 ; i<createInfos.size() ; i++ )
82943       {
82944         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
82945       }
82946     }
82947 
82948     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
82949   }
82950   template<typename Dispatch, typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const82951   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
82952   {
82953     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
82954     std::vector<Pipeline> pipelines( createInfos.size() );
82955     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
82956     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
82957     {
82958       uniquePipelines.reserve( createInfos.size() );
82959       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82960       for ( size_t i=0 ; i<createInfos.size() ; i++ )
82961       {
82962         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
82963       }
82964     }
82965 
82966     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
82967   }
82968   template<typename Dispatch>
createGraphicsPipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82969   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
82970   {
82971     Pipeline pipeline;
82972     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
82973 
82974     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
82975     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelineUnique", { Result::eSuccess, Result::ePipelineCompileRequiredEXT }, deleter );
82976   }
82977 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
82978 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82979 
82980   template<typename Dispatch>
createImage(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Image * pImage,Dispatch const & d) const82981   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
82982   {
82983     return static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImage*>( pImage ) ) );
82984   }
82985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82986   template<typename Dispatch>
createImage(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82987   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
82988   {
82989     VULKAN_HPP_NAMESPACE::Image image;
82990     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage*>( &image ) ) );
82991     return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImage" );
82992   }
82993 #ifndef VULKAN_HPP_NO_SMART_HANDLE
82994   template<typename Dispatch>
createImageUnique(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const82995   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Image,Dispatch>>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
82996   {
82997     VULKAN_HPP_NAMESPACE::Image image;
82998     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage*>( &image ) ) );
82999 
83000     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83001     return createResultValue<Image,Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageUnique", deleter );
83002   }
83003 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83004 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83005 
83006   template<typename Dispatch>
createImageView(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ImageView * pView,Dispatch const & d) const83007   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
83008   {
83009     return static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImageView*>( pView ) ) );
83010   }
83011 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83012   template<typename Dispatch>
createImageView(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83013   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
83014   {
83015     VULKAN_HPP_NAMESPACE::ImageView view;
83016     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView*>( &view ) ) );
83017     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageView" );
83018   }
83019 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83020   template<typename Dispatch>
createImageViewUnique(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83021   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83022   {
83023     VULKAN_HPP_NAMESPACE::ImageView view;
83024     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView*>( &view ) ) );
83025 
83026     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83027     return createResultValue<ImageView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageViewUnique", deleter );
83028   }
83029 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83030 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83031 
83032   template<typename Dispatch>
createIndirectCommandsLayoutNV(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout,Dispatch const & d) const83033   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
83034   {
83035     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkIndirectCommandsLayoutNV*>( pIndirectCommandsLayout ) ) );
83036   }
83037 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83038   template<typename Dispatch>
createIndirectCommandsLayoutNV(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83039   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
83040   {
83041     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
83042     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV*>( &indirectCommandsLayout ) ) );
83043     return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNV" );
83044   }
83045 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83046   template<typename Dispatch>
createIndirectCommandsLayoutNVUnique(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83047   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNV,Dispatch>>::type Device::createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83048   {
83049     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
83050     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV*>( &indirectCommandsLayout ) ) );
83051 
83052     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83053     return createResultValue<IndirectCommandsLayoutNV,Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVUnique", deleter );
83054   }
83055 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83057 
83058   template<typename Dispatch>
createPipelineCache(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache,Dispatch const & d) const83059   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
83060   {
83061     return static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineCache*>( pPipelineCache ) ) );
83062   }
83063 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83064   template<typename Dispatch>
createPipelineCache(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83065   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
83066   {
83067     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
83068     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache*>( &pipelineCache ) ) );
83069     return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCache" );
83070   }
83071 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83072   template<typename Dispatch>
createPipelineCacheUnique(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83073   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83074   {
83075     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
83076     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache*>( &pipelineCache ) ) );
83077 
83078     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83079     return createResultValue<PipelineCache,Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCacheUnique", deleter );
83080   }
83081 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83082 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83083 
83084   template<typename Dispatch>
createPipelineLayout(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout,Dispatch const & d) const83085   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
83086   {
83087     return static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineLayout*>( pPipelineLayout ) ) );
83088   }
83089 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83090   template<typename Dispatch>
createPipelineLayout(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83091   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
83092   {
83093     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
83094     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout*>( &pipelineLayout ) ) );
83095     return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayout" );
83096   }
83097 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83098   template<typename Dispatch>
createPipelineLayoutUnique(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83099   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83100   {
83101     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
83102     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout*>( &pipelineLayout ) ) );
83103 
83104     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83105     return createResultValue<PipelineLayout,Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayoutUnique", deleter );
83106   }
83107 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83108 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83109 
83110   template<typename Dispatch>
createPrivateDataSlotEXT(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot,Dispatch const & d) const83111   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
83112   {
83113     return static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPrivateDataSlotEXT*>( pPrivateDataSlot ) ) );
83114   }
83115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83116   template<typename Dispatch>
createPrivateDataSlotEXT(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83117   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>::type Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83118   {
83119     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
83120     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT*>( &privateDataSlot ) ) );
83121     return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING"::Device::createPrivateDataSlotEXT" );
83122   }
83123 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83124   template<typename Dispatch>
createPrivateDataSlotEXTUnique(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83125   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PrivateDataSlotEXT,Dispatch>>::type Device::createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83126   {
83127     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
83128     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT*>( &privateDataSlot ) ) );
83129 
83130     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83131     return createResultValue<PrivateDataSlotEXT,Dispatch>( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING"::Device::createPrivateDataSlotEXTUnique", deleter );
83132   }
83133 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83134 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83135 
83136   template<typename Dispatch>
createQueryPool(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool,Dispatch const & d) const83137   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
83138   {
83139     return static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkQueryPool*>( pQueryPool ) ) );
83140   }
83141 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83142   template<typename Dispatch>
createQueryPool(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83143   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
83144   {
83145     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
83146     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool*>( &queryPool ) ) );
83147     return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPool" );
83148   }
83149 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83150   template<typename Dispatch>
createQueryPoolUnique(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83151   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83152   {
83153     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
83154     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool*>( &queryPool ) ) );
83155 
83156     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83157     return createResultValue<QueryPool,Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPoolUnique", deleter );
83158   }
83159 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83160 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83161 
83162 #ifdef VK_ENABLE_BETA_EXTENSIONS
83163   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) const83164   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
83165   {
83166     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 ) ) );
83167   }
83168 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83169   template<typename Allocator , typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83170   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83171   {
83172     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
83173     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
83174     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } );
83175   }
83176   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const83177   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
83178   {
83179     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
83180     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
83181     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } );
83182   }
83183   template<typename Dispatch>
createRayTracingPipelineKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83184   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
83185   {
83186     Pipeline pipeline;
83187     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
83188     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } );
83189   }
83190 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83191   template<typename Dispatch, typename Allocator >
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83192   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83193   {
83194     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
83195     std::vector<Pipeline> pipelines( createInfos.size() );
83196     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
83197     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 ) )
83198     {
83199       uniquePipelines.reserve( createInfos.size() );
83200       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83201       for ( size_t i=0 ; i<createInfos.size() ; i++ )
83202       {
83203         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83204       }
83205     }
83206 
83207     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 } );
83208   }
83209   template<typename Dispatch, typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const83210   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
83211   {
83212     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
83213     std::vector<Pipeline> pipelines( createInfos.size() );
83214     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
83215     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 ) )
83216     {
83217       uniquePipelines.reserve( createInfos.size() );
83218       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83219       for ( size_t i=0 ; i<createInfos.size() ; i++ )
83220       {
83221         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83222       }
83223     }
83224 
83225     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 } );
83226   }
83227   template<typename Dispatch>
createRayTracingPipelineKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83228   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
83229   {
83230     Pipeline pipeline;
83231     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
83232 
83233     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83234     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineKHRUnique", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT }, deleter );
83235   }
83236 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83237 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83238 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83239 
83240   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) const83241   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
83242   {
83243     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 ) ) );
83244   }
83245 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83246   template<typename Allocator , typename Dispatch>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83247   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83248   {
83249     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
83250     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
83251     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
83252   }
83253   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const83254   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline,Allocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
83255   {
83256     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
83257     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
83258     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
83259   }
83260   template<typename Dispatch>
createRayTracingPipelineNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83261   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
83262   {
83263     Pipeline pipeline;
83264     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
83265     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } );
83266   }
83267 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83268   template<typename Dispatch, typename Allocator >
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83269   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83270   {
83271     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines;
83272     std::vector<Pipeline> pipelines( createInfos.size() );
83273     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
83274     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
83275     {
83276       uniquePipelines.reserve( createInfos.size() );
83277       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83278       for ( size_t i=0 ; i<createInfos.size() ; i++ )
83279       {
83280         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83281       }
83282     }
83283 
83284     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83285   }
83286   template<typename Dispatch, typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const83287   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
83288   {
83289     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> uniquePipelines( vectorAllocator );
83290     std::vector<Pipeline> pipelines( createInfos.size() );
83291     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>(pipelines.data()) ) );
83292     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
83293     {
83294       uniquePipelines.reserve( createInfos.size() );
83295       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83296       for ( size_t i=0 ; i<createInfos.size() ; i++ )
83297       {
83298         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
83299       }
83300     }
83301 
83302     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
83303   }
83304   template<typename Dispatch>
createRayTracingPipelineNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83305   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
83306   {
83307     Pipeline pipeline;
83308     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
83309 
83310     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83311     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNVUnique", { Result::eSuccess, Result::ePipelineCompileRequiredEXT }, deleter );
83312   }
83313 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83315 
83316   template<typename Dispatch>
createRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const83317   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
83318   {
83319     return static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
83320   }
83321 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83322   template<typename Dispatch>
createRenderPass(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83323   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
83324   {
83325     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
83326     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
83327     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass" );
83328   }
83329 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83330   template<typename Dispatch>
createRenderPassUnique(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83331   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83332   {
83333     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
83334     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
83335 
83336     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83337     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPassUnique", deleter );
83338   }
83339 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83340 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83341 
83342   template<typename Dispatch>
createRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const83343   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
83344   {
83345     return static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
83346   }
83347 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83348   template<typename Dispatch>
createRenderPass2(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83349   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
83350   {
83351     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
83352     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
83353     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2" );
83354   }
83355 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83356   template<typename Dispatch>
createRenderPass2Unique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83357   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83358   {
83359     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
83360     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
83361 
83362     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83363     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2Unique", deleter );
83364   }
83365 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83366 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83367 
83368   template<typename Dispatch>
createRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const83369   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
83370   {
83371     return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
83372   }
83373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83374   template<typename Dispatch>
createRenderPass2KHR(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83375   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
83376   {
83377     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
83378     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
83379     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHR" );
83380   }
83381 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83382   template<typename Dispatch>
createRenderPass2KHRUnique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83383   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83384   {
83385     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
83386     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
83387 
83388     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83389     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHRUnique", deleter );
83390   }
83391 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83392 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83393 
83394   template<typename Dispatch>
createSampler(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Sampler * pSampler,Dispatch const & d) const83395   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
83396   {
83397     return static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSampler*>( pSampler ) ) );
83398   }
83399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83400   template<typename Dispatch>
createSampler(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83401   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
83402   {
83403     VULKAN_HPP_NAMESPACE::Sampler sampler;
83404     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler*>( &sampler ) ) );
83405     return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSampler" );
83406   }
83407 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83408   template<typename Dispatch>
createSamplerUnique(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83409   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83410   {
83411     VULKAN_HPP_NAMESPACE::Sampler sampler;
83412     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler*>( &sampler ) ) );
83413 
83414     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83415     return createResultValue<Sampler,Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerUnique", deleter );
83416   }
83417 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83418 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83419 
83420   template<typename Dispatch>
createSamplerYcbcrConversion(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const83421   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
83422   {
83423     return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
83424   }
83425 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83426   template<typename Dispatch>
createSamplerYcbcrConversion(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83427   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
83428   {
83429     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
83430     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
83431     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversion" );
83432   }
83433 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83434   template<typename Dispatch>
createSamplerYcbcrConversionUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83435   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83436   {
83437     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
83438     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
83439 
83440     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83441     return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionUnique", deleter );
83442   }
83443 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83444 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83445 
83446   template<typename Dispatch>
createSamplerYcbcrConversionKHR(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const83447   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
83448   {
83449     return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
83450   }
83451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83452   template<typename Dispatch>
createSamplerYcbcrConversionKHR(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83453   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
83454   {
83455     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
83456     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
83457     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHR" );
83458   }
83459 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83460   template<typename Dispatch>
createSamplerYcbcrConversionKHRUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83461   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83462   {
83463     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
83464     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
83465 
83466     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83467     return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHRUnique", deleter );
83468   }
83469 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83470 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83471 
83472   template<typename Dispatch>
createSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore,Dispatch const & d) const83473   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
83474   {
83475     return static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSemaphore*>( pSemaphore ) ) );
83476   }
83477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83478   template<typename Dispatch>
createSemaphore(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83479   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
83480   {
83481     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
83482     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore*>( &semaphore ) ) );
83483     return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphore" );
83484   }
83485 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83486   template<typename Dispatch>
createSemaphoreUnique(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83487   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83488   {
83489     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
83490     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore*>( &semaphore ) ) );
83491 
83492     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83493     return createResultValue<Semaphore,Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphoreUnique", deleter );
83494   }
83495 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83496 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83497 
83498   template<typename Dispatch>
createShaderModule(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule,Dispatch const & d) const83499   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
83500   {
83501     return static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkShaderModule*>( pShaderModule ) ) );
83502   }
83503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83504   template<typename Dispatch>
createShaderModule(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83505   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
83506   {
83507     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
83508     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule*>( &shaderModule ) ) );
83509     return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModule" );
83510   }
83511 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83512   template<typename Dispatch>
createShaderModuleUnique(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83513   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83514   {
83515     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
83516     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule*>( &shaderModule ) ) );
83517 
83518     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83519     return createResultValue<ShaderModule,Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModuleUnique", deleter );
83520   }
83521 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83523 
83524   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) const83525   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
83526   {
83527     return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchains ) ) );
83528   }
83529 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83530   template<typename Allocator , typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83531   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83532   {
83533     std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size() );
83534     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( swapchains.data() ) ) );
83535     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
83536   }
83537   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const83538   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
83539   {
83540     std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size(), vectorAllocator );
83541     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( swapchains.data() ) ) );
83542     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
83543   }
83544   template<typename Dispatch>
createSharedSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83545   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
83546   {
83547     SwapchainKHR swapchain;
83548     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
83549     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHR" );
83550   }
83551 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83552   template<typename Dispatch, typename Allocator >
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83553   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83554   {
83555     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> uniqueSwapchainKHRs;
83556     std::vector<SwapchainKHR> swapchainKHRs( createInfos.size() );
83557     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>(swapchainKHRs.data()) ) );
83558     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83559     {
83560       uniqueSwapchainKHRs.reserve( createInfos.size() );
83561       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83562       for ( size_t i=0 ; i<createInfos.size() ; i++ )
83563       {
83564         uniqueSwapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchainKHRs[i], deleter ) );
83565       }
83566     }
83567 
83568     return createResultValue( result, std::move( uniqueSwapchainKHRs ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
83569   }
83570   template<typename Dispatch, typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const83571   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
83572   {
83573     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> uniqueSwapchainKHRs( vectorAllocator );
83574     std::vector<SwapchainKHR> swapchainKHRs( createInfos.size() );
83575     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>(swapchainKHRs.data()) ) );
83576     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83577     {
83578       uniqueSwapchainKHRs.reserve( createInfos.size() );
83579       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83580       for ( size_t i=0 ; i<createInfos.size() ; i++ )
83581       {
83582         uniqueSwapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchainKHRs[i], deleter ) );
83583       }
83584     }
83585 
83586     return createResultValue( result, std::move( uniqueSwapchainKHRs ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
83587   }
83588   template<typename Dispatch>
createSharedSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83589   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
83590   {
83591     SwapchainKHR swapchain;
83592     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
83593 
83594     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83595     return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHRUnique", deleter );
83596   }
83597 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83598 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83599 
83600   template<typename Dispatch>
createSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain,Dispatch const & d) const83601   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
83602   {
83603     return static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchain ) ) );
83604   }
83605 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83606   template<typename Dispatch>
createSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83607   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
83608   {
83609     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
83610     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
83611     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHR" );
83612   }
83613 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83614   template<typename Dispatch>
createSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83615   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83616   {
83617     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
83618     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
83619 
83620     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83621     return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHRUnique", deleter );
83622   }
83623 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83624 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83625 
83626   template<typename Dispatch>
createValidationCacheEXT(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache,Dispatch const & d) const83627   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
83628   {
83629     return static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkValidationCacheEXT*>( pValidationCache ) ) );
83630   }
83631 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83632   template<typename Dispatch>
createValidationCacheEXT(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83633   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83634   {
83635     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
83636     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT*>( &validationCache ) ) );
83637     return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXT" );
83638   }
83639 #ifndef VULKAN_HPP_NO_SMART_HANDLE
83640   template<typename Dispatch>
createValidationCacheEXTUnique(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83641   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
83642   {
83643     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
83644     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT*>( &validationCache ) ) );
83645 
83646     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
83647     return createResultValue<ValidationCacheEXT,Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXTUnique", deleter );
83648   }
83649 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83650 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83651 
83652 
83653   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo,Dispatch const & d) const83654   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83655   {
83656     return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( pNameInfo ) ) );
83657   }
83658 
83659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83660   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const DebugMarkerObjectNameInfoEXT & nameInfo,Dispatch const & d) const83661   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
83662   {
83663     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
83664     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
83665   }
83666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83667 
83668 
83669   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo,Dispatch const & d) const83670   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83671   {
83672     return static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( pTagInfo ) ) );
83673   }
83674 
83675 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83676   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const DebugMarkerObjectTagInfoEXT & tagInfo,Dispatch const & d) const83677   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
83678   {
83679     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
83680     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
83681   }
83682 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83683 
83684 #ifdef VK_ENABLE_BETA_EXTENSIONS
83685 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83686   template<typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const83687   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
83688   {
83689     return static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
83690   }
83691 #else
83692   template<typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const83693   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d ) const
83694   {
83695     Result result = static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
83696     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::deferredOperationJoinKHR", { Result::eSuccess, Result::eThreadDoneKHR, Result::eThreadIdleKHR } );
83697   }
83698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83699 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83700 
83701 
83702 #ifdef VK_ENABLE_BETA_EXTENSIONS
83703   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83704   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83705   {
83706     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83707   }
83708 
83709 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83710   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83711   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83712   {
83713     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83714   }
83715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83716 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83717 
83718   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83719   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83720   {
83721     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83722   }
83723 
83724 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83725   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83726   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83727   {
83728     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83729   }
83730 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83731 
83732 
83733   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83734   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83735   {
83736 #ifdef VK_ENABLE_BETA_EXTENSIONS
83737     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83738 #else
83739     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83740 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83741 
83742   }
83743 
83744 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83745   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83746   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83747   {
83748 #ifdef VK_ENABLE_BETA_EXTENSIONS
83749     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83750 #else
83751     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83752 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83753 
83754   }
83755 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83756 
83757 
83758   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83759   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83760   {
83761     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83762   }
83763 
83764 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83765   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83766   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83767   {
83768     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83769   }
83770 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83771 
83772 
83773   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83774   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83775   {
83776     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83777   }
83778 
83779 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83780   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83781   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83782   {
83783     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83784   }
83785 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83786 
83787 
83788   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83789   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83790   {
83791     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83792   }
83793 
83794 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83795   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83796   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83797   {
83798     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83799   }
83800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83801 
83802 
83803   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83804   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83805   {
83806     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83807   }
83808 
83809 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83810   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83811   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83812   {
83813     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83814   }
83815 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83816 
83817 
83818   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83819   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83820   {
83821     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83822   }
83823 
83824 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83825   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83826   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83827   {
83828     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83829   }
83830 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83831 
83832 
83833   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83834   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83835   {
83836     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83837   }
83838 
83839 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83840   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83841   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83842   {
83843     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83844   }
83845 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83846 
83847 
83848 #ifdef VK_ENABLE_BETA_EXTENSIONS
83849   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83850   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83851   {
83852     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83853   }
83854 
83855 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83856   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83857   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83858   {
83859     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83860   }
83861 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83862 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83863 
83864 
83865 #ifdef VK_ENABLE_BETA_EXTENSIONS
83866   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83867   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83868   {
83869     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83870   }
83871 
83872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83873   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83874   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83875   {
83876     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83877   }
83878 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83879 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83880 
83881 
83882   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83883   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83884   {
83885     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83886   }
83887 
83888 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83889   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83890   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83891   {
83892     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83893   }
83894 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83895 
83896 
83897   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83898   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83899   {
83900     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83901   }
83902 
83903 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83904   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83905   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83906   {
83907     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83908   }
83909 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83910 
83911 
83912   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83913   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83914   {
83915     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83916   }
83917 
83918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83919   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83920   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83921   {
83922     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83923   }
83924 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83925 
83926 
83927   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83928   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83929   {
83930     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83931   }
83932 
83933 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83934   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83935   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83936   {
83937     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83938   }
83939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83940 
83941 
83942   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83943   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83944   {
83945     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83946   }
83947 
83948 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83949   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83950   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83951   {
83952     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83953   }
83954 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83955 
83956   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83957   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83958   {
83959     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83960   }
83961 
83962 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83963   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83964   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83965   {
83966     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83967   }
83968 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83969 
83970 
83971   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83972   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83973   {
83974     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83975   }
83976 
83977 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83978   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83979   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83980   {
83981     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83982   }
83983 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83984 
83985 
83986   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83987   VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83988   {
83989     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
83990   }
83991 
83992 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83993   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83994   VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83995   {
83996     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
83997   }
83998 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83999 
84000 
84001   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84002   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84003   {
84004     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84005   }
84006 
84007 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84008   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84009   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84010   {
84011     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84012   }
84013 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84014 
84015 
84016   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84017   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84018   {
84019     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84020   }
84021 
84022 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84023   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84024   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84025   {
84026     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84027   }
84028 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84029 
84030 
84031   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84032   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84033   {
84034     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84035   }
84036 
84037 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84038   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84039   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84040   {
84041     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84042   }
84043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84044 
84045 
84046   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84047   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84048   {
84049     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84050   }
84051 
84052 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84053   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84054   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84055   {
84056     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84057   }
84058 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84059 
84060 
84061   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84062   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84063   {
84064     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84065   }
84066 
84067 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84068   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84069   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84070   {
84071     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84072   }
84073 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84074 
84075 
84076   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84077   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84078   {
84079     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84080   }
84081 
84082 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84083   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84084   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84085   {
84086     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84087   }
84088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84089 
84090 
84091   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84092   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84093   {
84094     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84095   }
84096 
84097 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84098   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84099   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84100   {
84101     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84102   }
84103 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84104 
84105 
84106   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84107   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84108   {
84109     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84110   }
84111 
84112 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84113   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84114   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84115   {
84116     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84117   }
84118 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84119 
84120 
84121   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84122   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84123   {
84124     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84125   }
84126 
84127 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84128   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84129   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84130   {
84131     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84132   }
84133 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84134 
84135 
84136   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84137   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84138   {
84139     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84140   }
84141 
84142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84143   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84144   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84145   {
84146     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84147   }
84148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84149 
84150 
84151   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84152   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84153   {
84154     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84155   }
84156 
84157 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84158   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84159   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84160   {
84161     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84162   }
84163 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84164 
84165 
84166   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84167   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84168   {
84169     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84170   }
84171 
84172 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84173   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84174   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84175   {
84176     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84177   }
84178 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84179 
84180 
84181   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84182   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84183   {
84184     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84185   }
84186 
84187 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84188   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84189   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84190   {
84191     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84192   }
84193 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84194 
84195 
84196   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84197   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84198   {
84199     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84200   }
84201 
84202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84203   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84204   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84205   {
84206     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84207   }
84208 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84209 
84210 
84211   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84212   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84213   {
84214     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84215   }
84216 
84217 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84218   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84219   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84220   {
84221     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84222   }
84223 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84224 
84225 
84226   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84227   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84228   {
84229     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84230   }
84231 
84232 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84233   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84234   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84235   {
84236     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84237   }
84238 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84239 
84240 
84241   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84242   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84243   {
84244     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84245   }
84246 
84247 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84248   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84249   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84250   {
84251     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84252   }
84253 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84254 
84255 
84256   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84257   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84258   {
84259     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84260   }
84261 
84262 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84263   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84264   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84265   {
84266     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84267   }
84268 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84269 
84270 
84271   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84272   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84273   {
84274     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84275   }
84276 
84277 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84278   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84279   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84280   {
84281     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84282   }
84283 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84284 
84285 
84286   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84287   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84288   {
84289     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84290   }
84291 
84292 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84293   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84294   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84295   {
84296     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84297   }
84298 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84299 
84300 
84301   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84302   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84303   {
84304     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84305   }
84306 
84307 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84308   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84309   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84310   {
84311     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84312   }
84313 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84314 
84315 
84316   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84317   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84318   {
84319     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84320   }
84321 
84322 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84323   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84324   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84325   {
84326     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84327   }
84328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84329 
84330 
84331   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84332   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84333   {
84334     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84335   }
84336 
84337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84338   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84339   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84340   {
84341     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84342   }
84343 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84344 
84345 
84346   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84347   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84348   {
84349     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84350   }
84351 
84352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84353   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84354   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84355   {
84356     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84357   }
84358 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84359 
84360 
84361   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84362   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84363   {
84364     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84365   }
84366 
84367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84368   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84369   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84370   {
84371     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84372   }
84373 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84374 
84375 
84376   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84377   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84378   {
84379     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84380   }
84381 
84382 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84383   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84384   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84385   {
84386     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84387   }
84388 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84389 
84390 
84391   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84392   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84393   {
84394     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84395   }
84396 
84397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84398   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84399   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84400   {
84401     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84402   }
84403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84404 
84405   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84406   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84407   {
84408     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84409   }
84410 
84411 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84412   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84413   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84414   {
84415     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84416   }
84417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84418 
84419 
84420   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84421   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84422   {
84423     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84424   }
84425 
84426 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84427   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84428   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84429   {
84430     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84431   }
84432 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84433 
84434 
84435   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84436   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84437   {
84438     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84439   }
84440 
84441 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84442   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84443   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84444   {
84445     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84446   }
84447 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84448 
84449 
84450   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84451   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84452   {
84453     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84454   }
84455 
84456 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84457   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84458   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84459   {
84460     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84461   }
84462 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84463 
84464 
84465   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84466   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84467   {
84468     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84469   }
84470 
84471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84472   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84473   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84474   {
84475     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84476   }
84477 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84478 
84479 
84480   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84481   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84482   {
84483     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84484   }
84485 
84486 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84487   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84488   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84489   {
84490     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84491   }
84492 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84493 
84494 
84495   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84496   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84497   {
84498     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84499   }
84500 
84501 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84502   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84503   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84504   {
84505     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84506   }
84507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84508 
84509 
84510   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84511   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84512   {
84513     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84514   }
84515 
84516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84517   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84518   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84519   {
84520     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84521   }
84522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84523 
84524 
84525   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84526   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84527   {
84528     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84529   }
84530 
84531 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84532   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84533   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84534   {
84535     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84536   }
84537 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84538 
84539 
84540   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84541   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84542   {
84543     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84544   }
84545 
84546 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84547   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84548   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84549   {
84550     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84551   }
84552 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84553 
84554 
84555 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
84556   template <typename Dispatch>
waitIdle(Dispatch const & d) const84557   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84558   {
84559     return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
84560   }
84561 #else
84562   template <typename Dispatch>
waitIdle(Dispatch const & d) const84563   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::waitIdle( Dispatch const & d ) const
84564   {
84565     Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
84566     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
84567   }
84568 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84569 
84570 
84571 
84572   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,Dispatch const & d) const84573   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
84574   {
84575     return static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( pDisplayPowerInfo ) ) );
84576   }
84577 
84578 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84579   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayPowerInfoEXT & displayPowerInfo,Dispatch const & d) const84580   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const
84581   {
84582     Result result = static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) );
84583     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
84584   }
84585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84586 
84587 
84588   template <typename Dispatch>
flushMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const84589   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
84590   {
84591     return static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
84592   }
84593 
84594 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84595   template <typename Dispatch>
flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const84596   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
84597   {
84598     Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
84599     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
84600   }
84601 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84602 
84603 
84604   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const84605   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
84606   {
84607     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
84608   }
84609 
84610 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84611   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const84612   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
84613   {
84614     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
84615   }
84616 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84617 
84618 
84619   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const84620   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
84621   {
84622     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
84623   }
84624 
84625 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84626   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const84627   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
84628   {
84629     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
84630   }
84631 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84632 
84633 
84634   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const84635   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
84636   {
84637     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
84638   }
84639 
84640 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84641   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const84642   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
84643   {
84644     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
84645     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::freeDescriptorSets" );
84646   }
84647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84648 
84649 
84650   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const84651   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
84652   {
84653     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
84654   }
84655 
84656 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84657   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const84658   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
84659   {
84660     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
84661     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::free" );
84662   }
84663 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84664 
84665 
84666   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84667   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84668   {
84669     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84670   }
84671 
84672 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84673   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84674   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84675   {
84676     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84677   }
84678 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84679 
84680 
84681   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const84682   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84683   {
84684     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
84685   }
84686 
84687 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84688   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84689   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84690   {
84691     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
84692   }
84693 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84694 
84695 #ifdef VK_ENABLE_BETA_EXTENSIONS
84696   template<typename Dispatch>
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,Dispatch const & d) const84697   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84698   {
84699     return static_cast<DeviceAddress>( d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( pInfo ) ) );
84700   }
84701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84702   template<typename Dispatch>
getAccelerationStructureAddressKHR(const AccelerationStructureDeviceAddressInfoKHR & info,Dispatch const & d) const84703   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84704   {
84705     return d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( &info ) );
84706   }
84707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84708 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84709 
84710 
84711   template <typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData,Dispatch const & d) const84712   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
84713   {
84714     return static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), dataSize, pData ) );
84715   }
84716 
84717 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84718     template <typename T, typename Dispatch>
84719   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) const84720   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
84721   {
84722         Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
84723     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" );
84724 
84725   }
84726 
84727     template <typename T, typename Allocator, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,size_t dataSize,Dispatch const & d) const84728   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
84729   {
84730     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
84731     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
84732     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), dataSize, reinterpret_cast<void *>( data.data() ) ) );
84733     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
84734   }
84735 
84736     template <typename T, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Dispatch const & d) const84737   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Dispatch const & d ) const
84738   {
84739     T data;
84740     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), sizeof( T ), reinterpret_cast<void *>( &data ) ) );
84741     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
84742   }
84743 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84744 
84745 #ifdef VK_ENABLE_BETA_EXTENSIONS
84746   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const84747   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84748   {
84749     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
84750   }
84751 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84752   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const84753   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84754   {
84755     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
84756     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
84757     return memoryRequirements;
84758   }
84759   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const84760   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84761   {
84762     StructureChain<X, Y, Z...> structureChain;
84763     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
84764     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
84765     return structureChain;
84766   }
84767 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84768 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84769 
84770   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements,Dispatch const & d) const84771   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84772   {
84773     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( pInfo ), reinterpret_cast<VkMemoryRequirements2KHR*>( pMemoryRequirements ) );
84774   }
84775 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84776   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const84777   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84778   {
84779     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
84780     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
84781     return memoryRequirements;
84782   }
84783   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const84784   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84785   {
84786     StructureChain<X, Y, Z...> structureChain;
84787     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
84788     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
84789     return structureChain;
84790   }
84791 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84792 
84793 #ifdef VK_USE_PLATFORM_ANDROID_KHR
84794   template<typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer * buffer,VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,Dispatch const & d) const84795   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
84796   {
84797     return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( pProperties ) ) );
84798   }
84799 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84800   template<typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const84801   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
84802   {
84803     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
84804     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
84805     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
84806   }
84807   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const84808   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
84809   {
84810     StructureChain<X, Y, Z...> structureChain;
84811     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID& properties = structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
84812     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
84813     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
84814   }
84815 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84816 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
84817 
84818   template<typename Dispatch>
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const84819   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84820   {
84821     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) ) );
84822   }
84823 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84824   template<typename Dispatch>
getBufferAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const84825   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84826   {
84827     return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
84828   }
84829 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84830 
84831   template<typename Dispatch>
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const84832   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84833   {
84834     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) ) );
84835   }
84836 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84837   template<typename Dispatch>
getBufferAddressEXT(const BufferDeviceAddressInfo & info,Dispatch const & d) const84838   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84839   {
84840     return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
84841   }
84842 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84843 
84844   template<typename Dispatch>
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const84845   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84846   {
84847     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) ) );
84848   }
84849 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84850   template<typename Dispatch>
getBufferAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const84851   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84852   {
84853     return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
84854   }
84855 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84856 
84857   template<typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const84858   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84859   {
84860     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
84861   }
84862 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84863   template<typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,Dispatch const & d) const84864   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84865   {
84866     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
84867     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
84868     return memoryRequirements;
84869   }
84870 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84871 
84872   template<typename Dispatch>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const84873   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84874   {
84875     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
84876   }
84877 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84878   template<typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const84879   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84880   {
84881     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
84882     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
84883     return memoryRequirements;
84884   }
84885   template<typename X, typename Y, typename ...Z, typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const84886   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84887   {
84888     StructureChain<X, Y, Z...> structureChain;
84889     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
84890     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
84891     return structureChain;
84892   }
84893 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84894 
84895   template<typename Dispatch>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const84896   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84897   {
84898     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
84899   }
84900 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84901   template<typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const84902   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84903   {
84904     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
84905     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
84906     return memoryRequirements;
84907   }
84908   template<typename X, typename Y, typename ...Z, typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const84909   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84910   {
84911     StructureChain<X, Y, Z...> structureChain;
84912     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
84913     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
84914     return structureChain;
84915   }
84916 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84917 
84918   template<typename Dispatch>
getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const84919   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84920   {
84921     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) );
84922   }
84923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84924   template<typename Dispatch>
getBufferOpaqueCaptureAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const84925   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84926   {
84927     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
84928   }
84929 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84930 
84931   template<typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const84932   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84933   {
84934     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( pInfo ) );
84935   }
84936 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84937   template<typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const84938   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84939   {
84940     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo*>( &info ) );
84941   }
84942 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84943 
84944   template<typename Dispatch>
getCalibratedTimestampsEXT(uint32_t timestampCount,const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const84945   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
84946   {
84947     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
84948   }
84949 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84950   template<typename Dispatch>
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,ArrayProxy<uint64_t> const & timestamps,Dispatch const & d) const84951   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
84952   {
84953 #ifdef VULKAN_HPP_NO_EXCEPTIONS
84954     VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
84955 #else
84956     if ( timestampInfos.size() != timestamps.size() )
84957     {
84958       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" );
84959     }
84960 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
84961     uint64_t maxDeviation;
84962     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
84963     return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" );
84964   }
84965 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84966 
84967 #ifdef VK_ENABLE_BETA_EXTENSIONS
84968 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
84969   template<typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const84970   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84971   {
84972     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
84973   }
84974 #else
84975   template<typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const84976   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
84977   {
84978     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
84979   }
84980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84981 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84982 
84983 #ifdef VK_ENABLE_BETA_EXTENSIONS
84984 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
84985   template<typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const84986   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
84987   {
84988     return static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
84989   }
84990 #else
84991   template<typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const84992   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const &d ) const
84993   {
84994     Result result = static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
84995     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getDeferredOperationResultKHR", { Result::eSuccess, Result::eNotReady } );
84996   }
84997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84998 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84999 
85000   template<typename Dispatch>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const85001   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85002   {
85003     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
85004   }
85005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85006   template<typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const85007   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85008   {
85009     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
85010     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
85011     return support;
85012   }
85013   template<typename X, typename Y, typename ...Z, typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const85014   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85015   {
85016     StructureChain<X, Y, Z...> structureChain;
85017     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport& support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
85018     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
85019     return structureChain;
85020   }
85021 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85022 
85023   template<typename Dispatch>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const85024   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85025   {
85026     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
85027   }
85028 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85029   template<typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const85030   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85031   {
85032     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
85033     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
85034     return support;
85035   }
85036   template<typename X, typename Y, typename ...Z, typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const85037   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85038   {
85039     StructureChain<X, Y, Z...> structureChain;
85040     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport& support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
85041     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
85042     return structureChain;
85043   }
85044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85045 
85046 
85047 #ifdef VK_ENABLE_BETA_EXTENSIONS
85048   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR * version,Dispatch const & d) const85049   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85050   {
85051     return static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR *>( version ) ) );
85052   }
85053 
85054 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85055   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const AccelerationStructureVersionKHR & version,Dispatch const & d) const85056   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const & d ) const
85057   {
85058     Result result = static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR *>( &version ) ) );
85059     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureCompatibilityKHR" );
85060   }
85061 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85062 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85063 
85064   template<typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const85065   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
85066   {
85067     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
85068   }
85069 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85070   template<typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const85071   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
85072   {
85073     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
85074     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
85075     return peerMemoryFeatures;
85076   }
85077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85078 
85079   template<typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const85080   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
85081   {
85082     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
85083   }
85084 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85085   template<typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const85086   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
85087   {
85088     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
85089     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
85090     return peerMemoryFeatures;
85091   }
85092 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85093 
85094   template<typename Dispatch>
getGroupPresentCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,Dispatch const & d) const85095   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85096   {
85097     return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( pDeviceGroupPresentCapabilities ) ) );
85098   }
85099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85100   template<typename Dispatch>
getGroupPresentCapabilitiesKHR(Dispatch const & d) const85101   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type Device::getGroupPresentCapabilitiesKHR(Dispatch const &d ) const
85102   {
85103     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
85104     Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( &deviceGroupPresentCapabilities ) ) );
85105     return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupPresentCapabilitiesKHR" );
85106   }
85107 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85108 
85109 #ifdef VK_USE_PLATFORM_WIN32_KHR
85110   template<typename Dispatch>
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const85111   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
85112   {
85113     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
85114   }
85115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85116   template<typename Dispatch>
getGroupSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const85117   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
85118   {
85119     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
85120     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
85121     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModes2EXT" );
85122   }
85123 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85124 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85125 
85126   template<typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const85127   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
85128   {
85129     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
85130   }
85131 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85132   template<typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const85133   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
85134   {
85135     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
85136     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
85137     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModesKHR" );
85138   }
85139 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85140 
85141   template<typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,Dispatch const & d) const85142   VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85143   {
85144     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( pCommittedMemoryInBytes ) );
85145   }
85146 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85147   template<typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const85148   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85149   {
85150     VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
85151     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( &committedMemoryInBytes ) );
85152     return committedMemoryInBytes;
85153   }
85154 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85155 
85156   template<typename Dispatch>
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const85157   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85158   {
85159     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( pInfo ) );
85160   }
85161 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85162   template<typename Dispatch>
getMemoryOpaqueCaptureAddress(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const85163   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85164   {
85165     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( &info ) );
85166   }
85167 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85168 
85169   template<typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const85170   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85171   {
85172     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( pInfo ) );
85173   }
85174 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85175   template<typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const85176   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85177   {
85178     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( &info ) );
85179   }
85180 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85181 
85182   template<typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const85183   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85184   {
85185     return d.vkGetDeviceProcAddr( m_device, pName );
85186   }
85187 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85188   template<typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const85189   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85190   {
85191     return d.vkGetDeviceProcAddr( m_device, name.c_str() );
85192   }
85193 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85194 
85195   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const85196   VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85197   {
85198     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( pQueue ) );
85199   }
85200 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85201   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,Dispatch const & d) const85202   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85203   {
85204     VULKAN_HPP_NAMESPACE::Queue queue;
85205     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( &queue ) );
85206     return queue;
85207   }
85208 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85209 
85210   template<typename Dispatch>
getQueue2(const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const85211   VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85212   {
85213     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( pQueueInfo ), reinterpret_cast<VkQueue*>( pQueue ) );
85214   }
85215 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85216   template<typename Dispatch>
getQueue2(const DeviceQueueInfo2 & queueInfo,Dispatch const & d) const85217   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85218   {
85219     VULKAN_HPP_NAMESPACE::Queue queue;
85220     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( &queueInfo ), reinterpret_cast<VkQueue*>( &queue ) );
85221     return queue;
85222   }
85223 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85224 
85225 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
85226   template<typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const85227   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85228   {
85229     return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
85230   }
85231 #else
85232   template<typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const85233   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d ) const
85234   {
85235     Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
85236     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getEventStatus", { Result::eEventSet, Result::eEventReset } );
85237   }
85238 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85239 
85240   template<typename Dispatch>
getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const85241   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85242   {
85243     return static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
85244   }
85245 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85246   template<typename Dispatch>
getFenceFdKHR(const FenceGetFdInfoKHR & getFdInfo,Dispatch const & d) const85247   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
85248   {
85249     int fd;
85250     Result result = static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( &getFdInfo ), &fd ) );
85251     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceFdKHR" );
85252   }
85253 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85254 
85255 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
85256   template<typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const85257   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85258   {
85259     return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
85260   }
85261 #else
85262   template<typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const85263   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const
85264   {
85265     Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
85266     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceStatus", { Result::eSuccess, Result::eNotReady } );
85267   }
85268 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85269 
85270 #ifdef VK_USE_PLATFORM_WIN32_KHR
85271   template<typename Dispatch>
getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const85272   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85273   {
85274     return static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
85275   }
85276 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85277   template<typename Dispatch>
getFenceWin32HandleKHR(const FenceGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const85278   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
85279   {
85280     HANDLE handle;
85281     Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
85282     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceWin32HandleKHR" );
85283   }
85284 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85285 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85286 
85287   template<typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const85288   VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85289   {
85290     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
85291   }
85292 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85293   template<typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const85294   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85295   {
85296     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
85297     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
85298     return memoryRequirements;
85299   }
85300   template<typename X, typename Y, typename ...Z, typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const85301   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85302   {
85303     StructureChain<X, Y, Z...> structureChain;
85304     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
85305     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
85306     return structureChain;
85307   }
85308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85309 
85310   template<typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties,Dispatch const & d) const85311   VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85312   {
85313     return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( pProperties ) ) );
85314   }
85315 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85316   template<typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const85317   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const
85318   {
85319     VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
85320     Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( &properties ) ) );
85321     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getImageDrmFormatModifierPropertiesEXT" );
85322   }
85323 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85324 
85325   template<typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const85326   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85327   {
85328     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
85329   }
85330 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85331   template<typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const85332   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85333   {
85334     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
85335     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
85336     return memoryRequirements;
85337   }
85338 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85339 
85340   template<typename Dispatch>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const85341   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85342   {
85343     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
85344   }
85345 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85346   template<typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const85347   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85348   {
85349     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
85350     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
85351     return memoryRequirements;
85352   }
85353   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const85354   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85355   {
85356     StructureChain<X, Y, Z...> structureChain;
85357     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
85358     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
85359     return structureChain;
85360   }
85361 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85362 
85363   template<typename Dispatch>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const85364   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85365   {
85366     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
85367   }
85368 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85369   template<typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const85370   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85371   {
85372     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
85373     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
85374     return memoryRequirements;
85375   }
85376   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const85377   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85378   {
85379     StructureChain<X, Y, Z...> structureChain;
85380     VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
85381     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
85382     return structureChain;
85383   }
85384 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85385 
85386 
85387   template <typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,Dispatch const & d) const85388   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
85389   {
85390     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements *>( pSparseMemoryRequirements ) );
85391   }
85392 
85393 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85394   template <typename SparseImageMemoryRequirementsAllocator, typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const85395   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
85396   {
85397     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements;
85398     uint32_t sparseMemoryRequirementCount;
85399     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
85400     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
85401     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
85402     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
85403     return sparseMemoryRequirements;
85404   }
85405 
85406   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 & sparseMemoryRequirementsAllocator,Dispatch const & d) const85407   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseMemoryRequirementsAllocator, Dispatch const & d ) const
85408   {
85409     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements( sparseMemoryRequirementsAllocator );
85410     uint32_t sparseMemoryRequirementCount;
85411     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
85412     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
85413     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
85414     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
85415     return sparseMemoryRequirements;
85416   }
85417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85418 
85419 
85420   template <typename Dispatch>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const85421   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
85422   {
85423     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
85424   }
85425 
85426 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85427   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const85428   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
85429   {
85430     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
85431     uint32_t sparseMemoryRequirementCount;
85432     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
85433     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
85434     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
85435     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
85436     return sparseMemoryRequirements;
85437   }
85438 
85439   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 & sparseMemoryRequirementsAllocator,Dispatch const & d) const85440   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseMemoryRequirementsAllocator, Dispatch const & d ) const
85441   {
85442     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseMemoryRequirementsAllocator );
85443     uint32_t sparseMemoryRequirementCount;
85444     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
85445     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
85446     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
85447     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
85448     return sparseMemoryRequirements;
85449   }
85450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85451 
85452   template <typename Dispatch>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const85453   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
85454   {
85455     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
85456   }
85457 
85458 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85459   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const85460   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
85461   {
85462     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
85463     uint32_t sparseMemoryRequirementCount;
85464     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
85465     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
85466     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
85467     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
85468     return sparseMemoryRequirements;
85469   }
85470 
85471   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 & sparseMemoryRequirementsAllocator,Dispatch const & d) const85472   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseMemoryRequirementsAllocator, Dispatch const & d ) const
85473   {
85474     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseMemoryRequirementsAllocator );
85475     uint32_t sparseMemoryRequirementCount;
85476     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
85477     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
85478     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
85479     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
85480     return sparseMemoryRequirements;
85481   }
85482 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85483 
85484   template<typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout,Dispatch const & d) const85485   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
85486   {
85487     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( pSubresource ), reinterpret_cast<VkSubresourceLayout*>( pLayout ) );
85488   }
85489 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85490   template<typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const ImageSubresource & subresource,Dispatch const & d) const85491   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85492   {
85493     VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
85494     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( &subresource ), reinterpret_cast<VkSubresourceLayout*>( &layout ) );
85495     return layout;
85496   }
85497 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85498 
85499   template<typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,Dispatch const & d) const85500   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
85501   {
85502     return static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX*>( pProperties ) ) );
85503   }
85504 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85505   template<typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,Dispatch const & d) const85506   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
85507   {
85508     VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
85509     Result result = static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX*>( &properties ) ) );
85510     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getImageViewAddressNVX" );
85511   }
85512 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85513 
85514   template<typename Dispatch>
getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const85515   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85516   {
85517     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( pInfo ) );
85518   }
85519 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85520   template<typename Dispatch>
getImageViewHandleNVX(const ImageViewHandleInfoNVX & info,Dispatch const & d) const85521   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
85522   {
85523     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( &info ) );
85524   }
85525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85526 
85527 #ifdef VK_USE_PLATFORM_ANDROID_KHR
85528   template<typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,Dispatch const & d) const85529   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
85530   {
85531     return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( pInfo ), pBuffer ) );
85532   }
85533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85534   template<typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const MemoryGetAndroidHardwareBufferInfoANDROID & info,Dispatch const & d) const85535   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d ) const
85536   {
85537     struct AHardwareBuffer* buffer;
85538     Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( &info ), &buffer ) );
85539     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryAndroidHardwareBufferANDROID" );
85540   }
85541 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85542 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
85543 
85544   template<typename Dispatch>
getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const85545   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85546   {
85547     return static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
85548   }
85549 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85550   template<typename Dispatch>
getMemoryFdKHR(const MemoryGetFdInfoKHR & getFdInfo,Dispatch const & d) const85551   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
85552   {
85553     int fd;
85554     Result result = static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( &getFdInfo ), &fd ) );
85555     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdKHR" );
85556   }
85557 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85558 
85559   template<typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties,Dispatch const & d) const85560   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
85561   {
85562     return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( pMemoryFdProperties ) ) );
85563   }
85564 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85565   template<typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,Dispatch const & d) const85566   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
85567   {
85568     VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
85569     Result result = static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( &memoryFdProperties ) ) );
85570     return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdPropertiesKHR" );
85571   }
85572 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85573 
85574   template<typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,Dispatch const & d) const85575   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
85576   {
85577     return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( pMemoryHostPointerProperties ) ) );
85578   }
85579 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85580   template<typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,Dispatch const & d) const85581   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
85582   {
85583     VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
85584     Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( &memoryHostPointerProperties ) ) );
85585     return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryHostPointerPropertiesEXT" );
85586   }
85587 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85588 
85589 #ifdef VK_USE_PLATFORM_WIN32_KHR
85590   template<typename Dispatch>
getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const85591   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
85592   {
85593     return static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
85594   }
85595 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85596   template<typename Dispatch>
getMemoryWin32HandleKHR(const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const85597   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
85598   {
85599     HANDLE handle;
85600     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
85601     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleKHR" );
85602   }
85603 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85604 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85605 
85606 #ifdef VK_USE_PLATFORM_WIN32_KHR
85607   template<typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,Dispatch const & d) const85608   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
85609   {
85610     return static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
85611   }
85612 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85613   template<typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,Dispatch const & d) const85614   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
85615   {
85616     HANDLE handle;
85617     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
85618     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleNV" );
85619   }
85620 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85621 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85622 
85623 #ifdef VK_USE_PLATFORM_WIN32_KHR
85624   template<typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,Dispatch const & d) const85625   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
85626   {
85627     return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( pMemoryWin32HandleProperties ) ) );
85628   }
85629 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85630   template<typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,Dispatch const & d) const85631   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
85632   {
85633     VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
85634     Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( &memoryWin32HandleProperties ) ) );
85635     return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandlePropertiesKHR" );
85636   }
85637 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85638 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
85639 
85640   template<typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,Dispatch const & d) const85641   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
85642   {
85643     return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), pPresentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( pPresentationTimings ) ) );
85644   }
85645 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85646   template<typename Allocator , typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const85647   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
85648   {
85649     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings;
85650     uint32_t presentationTimingCount;
85651     Result result;
85652     do
85653     {
85654       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
85655       if ( ( result == Result::eSuccess ) && presentationTimingCount )
85656       {
85657         presentationTimings.resize( presentationTimingCount );
85658         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
85659       }
85660     } while ( result == Result::eIncomplete );
85661     if ( result == Result::eSuccess )
85662     {
85663       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
85664       presentationTimings.resize( presentationTimingCount );
85665     }
85666     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
85667   }
85668   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const85669   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
85670   {
85671     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings( vectorAllocator );
85672     uint32_t presentationTimingCount;
85673     Result result;
85674     do
85675     {
85676       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
85677       if ( ( result == Result::eSuccess ) && presentationTimingCount )
85678       {
85679         presentationTimings.resize( presentationTimingCount );
85680         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
85681       }
85682     } while ( result == Result::eIncomplete );
85683     if ( result == Result::eSuccess )
85684     {
85685       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
85686       presentationTimings.resize( presentationTimingCount );
85687     }
85688     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
85689   }
85690 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85691 
85692   template<typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue,Dispatch const & d) const85693   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
85694   {
85695     return static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( pValue ) ) );
85696   }
85697 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85698   template<typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,Dispatch const & d) const85699   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
85700   {
85701     VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
85702     Result result = static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( &value ) ) );
85703     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getPerformanceParameterINTEL" );
85704   }
85705 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85706 
85707   template<typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,size_t * pDataSize,void * pData,Dispatch const & d) const85708   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
85709   {
85710     return static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
85711   }
85712 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85713   template<typename Allocator , typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Dispatch const & d) const85714   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d ) const
85715   {
85716     std::vector<uint8_t,Allocator> data;
85717     size_t dataSize;
85718     Result result;
85719     do
85720     {
85721       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
85722       if ( ( result == Result::eSuccess ) && dataSize )
85723       {
85724         data.resize( dataSize );
85725         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
85726       }
85727     } while ( result == Result::eIncomplete );
85728     if ( result == Result::eSuccess )
85729     {
85730       VULKAN_HPP_ASSERT( dataSize <= data.size() );
85731       data.resize( dataSize );
85732     }
85733     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
85734   }
85735   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const85736   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const
85737   {
85738     std::vector<uint8_t,Allocator> data( vectorAllocator );
85739     size_t dataSize;
85740     Result result;
85741     do
85742     {
85743       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
85744       if ( ( result == Result::eSuccess ) && dataSize )
85745       {
85746         data.resize( dataSize );
85747         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
85748       }
85749     } while ( result == Result::eIncomplete );
85750     if ( result == Result::eSuccess )
85751     {
85752       VULKAN_HPP_ASSERT( dataSize <= data.size() );
85753       data.resize( dataSize );
85754     }
85755     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
85756   }
85757 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85758 
85759   template<typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,Dispatch const & d) const85760   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
85761   {
85762     return static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( pInternalRepresentations ) ) );
85763   }
85764 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85765   template<typename Allocator , typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const85766   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
85767   {
85768     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations;
85769     uint32_t internalRepresentationCount;
85770     Result result;
85771     do
85772     {
85773       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
85774       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
85775       {
85776         internalRepresentations.resize( internalRepresentationCount );
85777         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
85778       }
85779     } while ( result == Result::eIncomplete );
85780     if ( result == Result::eSuccess )
85781     {
85782       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
85783       internalRepresentations.resize( internalRepresentationCount );
85784     }
85785     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
85786   }
85787   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const85788   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
85789   {
85790     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations( vectorAllocator );
85791     uint32_t internalRepresentationCount;
85792     Result result;
85793     do
85794     {
85795       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
85796       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
85797       {
85798         internalRepresentations.resize( internalRepresentationCount );
85799         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
85800       }
85801     } while ( result == Result::eIncomplete );
85802     if ( result == Result::eSuccess )
85803     {
85804       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
85805       internalRepresentations.resize( internalRepresentationCount );
85806     }
85807     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
85808   }
85809 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85810 
85811   template<typename Dispatch>
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,Dispatch const & d) const85812   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
85813   {
85814     return static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( pPipelineInfo ), pExecutableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( pProperties ) ) );
85815   }
85816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85817   template<typename Allocator , typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Dispatch const & d) const85818   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d ) const
85819   {
85820     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties;
85821     uint32_t executableCount;
85822     Result result;
85823     do
85824     {
85825       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
85826       if ( ( result == Result::eSuccess ) && executableCount )
85827       {
85828         properties.resize( executableCount );
85829         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
85830       }
85831     } while ( result == Result::eIncomplete );
85832     if ( result == Result::eSuccess )
85833     {
85834       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
85835       properties.resize( executableCount );
85836     }
85837     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
85838   }
85839   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Allocator const & vectorAllocator,Dispatch const & d) const85840   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
85841   {
85842     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties( vectorAllocator );
85843     uint32_t executableCount;
85844     Result result;
85845     do
85846     {
85847       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
85848       if ( ( result == Result::eSuccess ) && executableCount )
85849       {
85850         properties.resize( executableCount );
85851         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
85852       }
85853     } while ( result == Result::eIncomplete );
85854     if ( result == Result::eSuccess )
85855     {
85856       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
85857       properties.resize( executableCount );
85858     }
85859     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
85860   }
85861 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85862 
85863   template<typename Dispatch>
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics,Dispatch const & d) const85864   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
85865   {
85866     return static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pStatisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( pStatistics ) ) );
85867   }
85868 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85869   template<typename Allocator , typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const85870   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
85871   {
85872     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics;
85873     uint32_t statisticCount;
85874     Result result;
85875     do
85876     {
85877       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
85878       if ( ( result == Result::eSuccess ) && statisticCount )
85879       {
85880         statistics.resize( statisticCount );
85881         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
85882       }
85883     } while ( result == Result::eIncomplete );
85884     if ( result == Result::eSuccess )
85885     {
85886       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
85887       statistics.resize( statisticCount );
85888     }
85889     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
85890   }
85891   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const85892   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
85893   {
85894     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics( vectorAllocator );
85895     uint32_t statisticCount;
85896     Result result;
85897     do
85898     {
85899       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
85900       if ( ( result == Result::eSuccess ) && statisticCount )
85901       {
85902         statistics.resize( statisticCount );
85903         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
85904       }
85905     } while ( result == Result::eIncomplete );
85906     if ( result == Result::eSuccess )
85907     {
85908       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
85909       statistics.resize( statisticCount );
85910     }
85911     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
85912   }
85913 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85914 
85915   template<typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t * pData,Dispatch const & d) const85916   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
85917   {
85918     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), pData );
85919   }
85920 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85921   template<typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Dispatch const & d) const85922   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
85923   {
85924     uint64_t data;
85925     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), &data );
85926     return data;
85927   }
85928 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85929 
85930 
85931   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) const85932   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
85933   {
85934     return static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
85935   }
85936 
85937 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85938     template <typename T, typename Dispatch>
85939   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) const85940   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
85941   {
85942         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 ) ) );
85943     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
85944 
85945   }
85946 
85947     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) const85948   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
85949   {
85950     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
85951     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
85952     Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, reinterpret_cast<void *>( data.data() ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
85953     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
85954   }
85955 
85956     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) const85957   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
85958   {
85959     T data;
85960     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 ) ) );
85961     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { Result::eSuccess, Result::eNotReady } );
85962   }
85963 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85964 
85965 
85966 #ifdef VK_ENABLE_BETA_EXTENSIONS
85967   template <typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const85968   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
85969   {
85970     return static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
85971   }
85972 
85973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85974     template <typename T, typename Dispatch>
85975   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) const85976   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
85977   {
85978         Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
85979     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
85980 
85981   }
85982 
85983     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) const85984   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
85985   {
85986     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
85987     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
85988     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, reinterpret_cast<void *>( data.data() ) ) );
85989     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
85990   }
85991 
85992     template <typename T, typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const85993   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
85994   {
85995     T data;
85996     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
85997     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" );
85998   }
85999 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86000 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86001 
86002 
86003 #ifdef VK_ENABLE_BETA_EXTENSIONS
86004   template <typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const86005   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
86006   {
86007     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
86008   }
86009 
86010 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86011     template <typename T, typename Dispatch>
86012   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) const86013   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
86014   {
86015         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
86016     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesKHR" );
86017 
86018   }
86019 
86020     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) const86021   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
86022   {
86023     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
86024     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
86025     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, reinterpret_cast<void *>( data.data() ) ) );
86026     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" );
86027   }
86028 
86029     template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const86030   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
86031   {
86032     T data;
86033     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
86034     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" );
86035   }
86036 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86037 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86038 
86039   template <typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const86040   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
86041   {
86042     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
86043   }
86044 
86045 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86046     template <typename T, typename Dispatch>
86047   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) const86048   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
86049   {
86050         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
86051     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" );
86052 
86053   }
86054 
86055     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) const86056   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
86057   {
86058     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
86059     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
86060     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, reinterpret_cast<void *>( data.data() ) ) );
86061     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" );
86062   }
86063 
86064     template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const86065   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
86066   {
86067     T data;
86068     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
86069     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" );
86070   }
86071 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86072 
86073   template<typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,Dispatch const & d) const86074   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
86075   {
86076     return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( pDisplayTimingProperties ) ) );
86077   }
86078 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86079   template<typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const86080   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
86081   {
86082     VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
86083     Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( &displayTimingProperties ) ) );
86084     return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getRefreshCycleDurationGOOGLE" );
86085   }
86086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86087 
86088   template<typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const86089   VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86090   {
86091     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( pGranularity ) );
86092   }
86093 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86094   template<typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Dispatch const & d) const86095   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
86096   {
86097     VULKAN_HPP_NAMESPACE::Extent2D granularity;
86098     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( &granularity ) );
86099     return granularity;
86100   }
86101 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86102 
86103   template<typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const86104   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86105   {
86106     return static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
86107   }
86108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86109   template<typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const86110   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
86111   {
86112     uint64_t value;
86113     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
86114     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreCounterValue" );
86115   }
86116 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86117 
86118   template<typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const86119   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86120   {
86121     return static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
86122   }
86123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86124   template<typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const86125   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
86126   {
86127     uint64_t value;
86128     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
86129     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreCounterValueKHR" );
86130   }
86131 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86132 
86133   template<typename Dispatch>
getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const86134   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86135   {
86136     return static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
86137   }
86138 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86139   template<typename Dispatch>
getSemaphoreFdKHR(const SemaphoreGetFdInfoKHR & getFdInfo,Dispatch const & d) const86140   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
86141   {
86142     int fd;
86143     Result result = static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( &getFdInfo ), &fd ) );
86144     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreFdKHR" );
86145   }
86146 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86147 
86148 #ifdef VK_USE_PLATFORM_WIN32_KHR
86149   template<typename Dispatch>
getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const86150   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86151   {
86152     return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
86153   }
86154 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86155   template<typename Dispatch>
getSemaphoreWin32HandleKHR(const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const86156   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
86157   {
86158     HANDLE handle;
86159     Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
86160     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreWin32HandleKHR" );
86161   }
86162 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86163 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86164 
86165   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) const86166   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
86167   {
86168     return static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), pInfoSize, pInfo ) );
86169   }
86170 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86171   template<typename Allocator , typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Dispatch const & d) const86172   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const &d ) const
86173   {
86174     std::vector<uint8_t,Allocator> info;
86175     size_t infoSize;
86176     Result result;
86177     do
86178     {
86179       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
86180       if ( ( result == Result::eSuccess ) && infoSize )
86181       {
86182         info.resize( infoSize );
86183         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() ) ) );
86184       }
86185     } while ( result == Result::eIncomplete );
86186     if ( result == Result::eSuccess )
86187     {
86188       VULKAN_HPP_ASSERT( infoSize <= info.size() );
86189       info.resize( infoSize );
86190     }
86191     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
86192   }
86193   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const86194   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const
86195   {
86196     std::vector<uint8_t,Allocator> info( vectorAllocator );
86197     size_t infoSize;
86198     Result result;
86199     do
86200     {
86201       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
86202       if ( ( result == Result::eSuccess ) && infoSize )
86203       {
86204         info.resize( infoSize );
86205         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() ) ) );
86206       }
86207     } while ( result == Result::eIncomplete );
86208     if ( result == Result::eSuccess )
86209     {
86210       VULKAN_HPP_ASSERT( infoSize <= info.size() );
86211       info.resize( infoSize );
86212     }
86213     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
86214   }
86215 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86216 
86217   template<typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,Dispatch const & d) const86218   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
86219   {
86220     return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
86221   }
86222 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86223   template<typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,Dispatch const & d) const86224   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
86225   {
86226     uint64_t counterValue;
86227     Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
86228     return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainCounterEXT" );
86229   }
86230 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86231 
86232   template<typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VULKAN_HPP_NAMESPACE::Image * pSwapchainImages,Dispatch const & d) const86233   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
86234   {
86235     return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast<VkImage*>( pSwapchainImages ) ) );
86236   }
86237 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86238   template<typename Allocator , typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const86239   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
86240   {
86241     std::vector<Image,Allocator> swapchainImages;
86242     uint32_t swapchainImageCount;
86243     Result result;
86244     do
86245     {
86246       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
86247       if ( ( result == Result::eSuccess ) && swapchainImageCount )
86248       {
86249         swapchainImages.resize( swapchainImageCount );
86250         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
86251       }
86252     } while ( result == Result::eIncomplete );
86253     if ( result == Result::eSuccess )
86254     {
86255       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
86256       swapchainImages.resize( swapchainImageCount );
86257     }
86258     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
86259   }
86260   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const86261   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
86262   {
86263     std::vector<Image,Allocator> swapchainImages( vectorAllocator );
86264     uint32_t swapchainImageCount;
86265     Result result;
86266     do
86267     {
86268       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
86269       if ( ( result == Result::eSuccess ) && swapchainImageCount )
86270       {
86271         swapchainImages.resize( swapchainImageCount );
86272         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
86273       }
86274     } while ( result == Result::eIncomplete );
86275     if ( result == Result::eSuccess )
86276     {
86277       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
86278       swapchainImages.resize( swapchainImageCount );
86279     }
86280     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
86281   }
86282 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86283 
86284 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86285   template<typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const86286   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
86287   {
86288     return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
86289   }
86290 #else
86291   template<typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const86292   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const
86293   {
86294     Result result = static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
86295     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainStatusKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
86296   }
86297 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86298 
86299   template<typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,size_t * pDataSize,void * pData,Dispatch const & d) const86300   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
86301   {
86302     return static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
86303   }
86304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86305   template<typename Allocator , typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Dispatch const & d) const86306   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d ) const
86307   {
86308     std::vector<uint8_t,Allocator> data;
86309     size_t dataSize;
86310     Result result;
86311     do
86312     {
86313       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
86314       if ( ( result == Result::eSuccess ) && dataSize )
86315       {
86316         data.resize( dataSize );
86317         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
86318       }
86319     } while ( result == Result::eIncomplete );
86320     if ( result == Result::eSuccess )
86321     {
86322       VULKAN_HPP_ASSERT( dataSize <= data.size() );
86323       data.resize( dataSize );
86324     }
86325     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
86326   }
86327   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const86328   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const
86329   {
86330     std::vector<uint8_t,Allocator> data( vectorAllocator );
86331     size_t dataSize;
86332     Result result;
86333     do
86334     {
86335       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
86336       if ( ( result == Result::eSuccess ) && dataSize )
86337       {
86338         data.resize( dataSize );
86339         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
86340       }
86341     } while ( result == Result::eIncomplete );
86342     if ( result == Result::eSuccess )
86343     {
86344       VULKAN_HPP_ASSERT( dataSize <= data.size() );
86345       data.resize( dataSize );
86346     }
86347     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
86348   }
86349 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86350 
86351 
86352   template <typename Dispatch>
importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,Dispatch const & d) const86353   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86354   {
86355     return static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( pImportFenceFdInfo ) ) );
86356   }
86357 
86358 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86359   template <typename Dispatch>
importFenceFdKHR(const ImportFenceFdInfoKHR & importFenceFdInfo,Dispatch const & d) const86360   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const
86361   {
86362     Result result = static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
86363     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
86364   }
86365 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86366 
86367 
86368 #ifdef VK_USE_PLATFORM_WIN32_KHR
86369   template <typename Dispatch>
importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,Dispatch const & d) const86370   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86371   {
86372     return static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( pImportFenceWin32HandleInfo ) ) );
86373   }
86374 
86375 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86376   template <typename Dispatch>
importFenceWin32HandleKHR(const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,Dispatch const & d) const86377   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d ) const
86378   {
86379     Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
86380     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
86381   }
86382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86383 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86384 
86385 
86386   template <typename Dispatch>
importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,Dispatch const & d) const86387   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86388   {
86389     return static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( pImportSemaphoreFdInfo ) ) );
86390   }
86391 
86392 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86393   template <typename Dispatch>
importSemaphoreFdKHR(const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo,Dispatch const & d) const86394   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const
86395   {
86396     Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
86397     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
86398   }
86399 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86400 
86401 
86402 #ifdef VK_USE_PLATFORM_WIN32_KHR
86403   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,Dispatch const & d) const86404   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86405   {
86406     return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( pImportSemaphoreWin32HandleInfo ) ) );
86407   }
86408 
86409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86410   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,Dispatch const & d) const86411   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d ) const
86412   {
86413     Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
86414     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
86415   }
86416 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86417 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86418 
86419 
86420   template <typename Dispatch>
initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo,Dispatch const & d) const86421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86422   {
86423     return static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( pInitializeInfo ) ) );
86424   }
86425 
86426 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86427   template <typename Dispatch>
initializePerformanceApiINTEL(const InitializePerformanceApiInfoINTEL & initializeInfo,Dispatch const & d) const86428   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d ) const
86429   {
86430     Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
86431     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
86432   }
86433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86434 
86435 
86436   template <typename Dispatch>
invalidateMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const86437   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
86438   {
86439     return static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
86440   }
86441 
86442 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86443   template <typename Dispatch>
invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const86444   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
86445   {
86446     Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
86447     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
86448   }
86449 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86450 
86451   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) const86452   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
86453   {
86454     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 ) );
86455   }
86456 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86457   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) const86458   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
86459   {
86460     void* pData;
86461     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 ) );
86462     return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING"::Device::mapMemory" );
86463   }
86464 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86465 
86466 
86467   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,Dispatch const & d) const86468   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
86469   {
86470     return static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache *>( pSrcCaches ) ) );
86471   }
86472 
86473 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86474   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches,Dispatch const & d) const86475   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
86476   {
86477     Result result = static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size(), reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) );
86478     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" );
86479   }
86480 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86481 
86482 
86483   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,Dispatch const & d) const86484   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
86485   {
86486     return static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCacheCount, reinterpret_cast<const VkValidationCacheEXT *>( pSrcCaches ) ) );
86487   }
86488 
86489 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86490   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches,Dispatch const & d) const86491   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
86492   {
86493     Result result = static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size(), reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) );
86494     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" );
86495   }
86496 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86497 
86498   template<typename Dispatch>
registerEventEXT(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const86499   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
86500   {
86501     return static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( pDeviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
86502   }
86503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86504   template<typename Dispatch>
registerEventEXT(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86505   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86506   {
86507     VULKAN_HPP_NAMESPACE::Fence fence;
86508     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
86509     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXT" );
86510   }
86511 #ifndef VULKAN_HPP_NO_SMART_HANDLE
86512   template<typename Dispatch>
registerEventEXTUnique(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86513   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86514   {
86515     VULKAN_HPP_NAMESPACE::Fence fence;
86516     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
86517 
86518     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
86519     return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXTUnique", deleter );
86520   }
86521 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
86522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86523 
86524   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) const86525   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
86526   {
86527     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 ) ) );
86528   }
86529 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86530   template<typename Dispatch>
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86531   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
86532   {
86533     VULKAN_HPP_NAMESPACE::Fence fence;
86534     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
86535     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXT" );
86536   }
86537 #ifndef VULKAN_HPP_NO_SMART_HANDLE
86538   template<typename Dispatch>
registerDisplayEventEXTUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86539   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86540   {
86541     VULKAN_HPP_NAMESPACE::Fence fence;
86542     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
86543 
86544     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
86545     return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXTUnique", deleter );
86546   }
86547 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
86548 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86549 
86550 
86551 #ifdef VK_USE_PLATFORM_WIN32_KHR
86552 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86553   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const86554   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86555   {
86556     return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
86557   }
86558 #else
86559   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const86560   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
86561   {
86562     Result result = static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
86563     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
86564   }
86565 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86566 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86567 
86568 
86569 
86570 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86571   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const86572   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86573   {
86574     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
86575   }
86576 #else
86577   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const86578   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
86579   {
86580     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
86581     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
86582   }
86583 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86584 
86585 
86586 
86587   template <typename Dispatch>
releaseProfilingLockKHR(Dispatch const & d) const86588   VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86589   {
86590     d.vkReleaseProfilingLockKHR( m_device );
86591   }
86592 
86593 
86594 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86595   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const86596   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
86597   {
86598     return static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
86599   }
86600 #else
86601   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const86602   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const
86603   {
86604     Result result = static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
86605     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
86606   }
86607 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86608 
86609 
86610 
86611 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86612   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const86613   VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86614   {
86615     return static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
86616   }
86617 #else
86618   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const86619   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const
86620   {
86621     Result result = static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
86622     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" );
86623   }
86624 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86625 
86626 
86627 
86628 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86629   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86630   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86631   {
86632     return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
86633   }
86634 #else
86635   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86636   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
86637   {
86638     Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
86639     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
86640   }
86641 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86642 
86643 
86644 
86645   template <typename Dispatch>
resetFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,Dispatch const & d) const86646   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
86647   {
86648     return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ) ) );
86649   }
86650 
86651 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86652   template <typename Dispatch>
resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,Dispatch const & d) const86653   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d ) const
86654   {
86655     Result result = static_cast<Result>( d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
86656     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
86657   }
86658 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86659 
86660 
86661   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const86662   VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86663   {
86664     d.vkResetQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
86665   }
86666 
86667   template <typename Dispatch>
resetQueryPoolEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const86668   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86669   {
86670     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
86671   }
86672 
86673 
86674   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,Dispatch const & d) const86675   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86676   {
86677     return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( pNameInfo ) ) );
86678   }
86679 
86680 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86681   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const DebugUtilsObjectNameInfoEXT & nameInfo,Dispatch const & d) const86682   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
86683   {
86684     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
86685     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
86686   }
86687 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86688 
86689 
86690   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo,Dispatch const & d) const86691   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86692   {
86693     return static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( pTagInfo ) ) );
86694   }
86695 
86696 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86697   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const DebugUtilsObjectTagInfoEXT & tagInfo,Dispatch const & d) const86698   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
86699   {
86700     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
86701     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
86702   }
86703 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86704 
86705 
86706 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86707   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86708   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86709   {
86710     return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
86711   }
86712 #else
86713   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86714   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
86715   {
86716     Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
86717     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
86718   }
86719 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86720 
86721 
86722 
86723   template <typename Dispatch>
setHdrMetadataEXT(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,Dispatch const & d) const86724   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
86725   {
86726     d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast<const VkSwapchainKHR *>( pSwapchains ), reinterpret_cast<const VkHdrMetadataEXT *>( pMetadata ) );
86727   }
86728 
86729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86730   template <typename Dispatch>
setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains,ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata,Dispatch const & d) const86731   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
86732   {
86733 #ifdef VULKAN_HPP_NO_EXCEPTIONS
86734     VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
86735 #else
86736     if ( swapchains.size() != metadata.size() )
86737   {
86738     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
86739   }
86740 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
86741 
86742     d.vkSetHdrMetadataEXT( m_device, swapchains.size(), reinterpret_cast<const VkSwapchainKHR *>( swapchains.data() ), reinterpret_cast<const VkHdrMetadataEXT *>( metadata.data() ) );
86743   }
86744 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86745 
86746 
86747   template <typename Dispatch>
setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,Dispatch const & d) const86748   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86749   {
86750     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
86751   }
86752 
86753 
86754 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86755   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const86756   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
86757   {
86758     return static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
86759   }
86760 #else
86761   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const86762   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
86763   {
86764     Result result = static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
86765     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
86766   }
86767 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86768 
86769 
86770 
86771   template <typename Dispatch>
signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const86772   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86773   {
86774     return static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
86775   }
86776 
86777 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86778   template <typename Dispatch>
signalSemaphore(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const86779   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
86780   {
86781     Result result = static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
86782     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
86783   }
86784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86785 
86786   template <typename Dispatch>
signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const86787   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86788   {
86789     return static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
86790   }
86791 
86792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86793   template <typename Dispatch>
signalSemaphoreKHR(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const86794   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
86795   {
86796     Result result = static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
86797     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
86798   }
86799 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86800 
86801 
86802   template <typename Dispatch>
trimCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const86803   VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86804   {
86805     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
86806   }
86807 
86808   template <typename Dispatch>
trimCommandPoolKHR(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const86809   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86810   {
86811     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
86812   }
86813 
86814 
86815   template <typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const86816   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86817   {
86818     d.vkUninitializePerformanceApiINTEL( m_device );
86819   }
86820 
86821 
86822   template <typename Dispatch>
unmapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const86823   VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86824   {
86825     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
86826   }
86827 
86828 
86829   template <typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const86830   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
86831   {
86832     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
86833   }
86834 
86835   template <typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const86836   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
86837   {
86838     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
86839   }
86840 
86841 
86842   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) const86843   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
86844   {
86845     d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast<const VkCopyDescriptorSet *>( pDescriptorCopies ) );
86846   }
86847 
86848 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86849   template <typename Dispatch>
updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies,Dispatch const & d) const86850   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
86851   {
86852     d.vkUpdateDescriptorSets( m_device, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ), descriptorCopies.size(), reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) );
86853   }
86854 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86855 
86856 
86857   template <typename Dispatch>
waitForFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const86858   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
86859   {
86860     return static_cast<Result>( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
86861   }
86862 
86863 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86864   template <typename Dispatch>
waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const86865   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
86866   {
86867     Result result = static_cast<Result>( d.vkWaitForFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
86868     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { Result::eSuccess, Result::eTimeout } );
86869   }
86870 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86871 
86872 
86873   template <typename Dispatch>
waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const86874   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
86875   {
86876     return static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
86877   }
86878 
86879 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86880   template <typename Dispatch>
waitSemaphores(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const86881   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
86882   {
86883     Result result = static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
86884     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { Result::eSuccess, Result::eTimeout } );
86885   }
86886 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86887 
86888   template <typename Dispatch>
waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const86889   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
86890   {
86891     return static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
86892   }
86893 
86894 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86895   template <typename Dispatch>
waitSemaphoresKHR(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const86896   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
86897   {
86898     Result result = static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
86899     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { Result::eSuccess, Result::eTimeout } );
86900   }
86901 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86902 
86903 #ifdef VK_ENABLE_BETA_EXTENSIONS
86904   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) const86905   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
86906   {
86907     return static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR*>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), dataSize, pData, stride ) );
86908   }
86909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86910   template<typename T, typename Dispatch>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,ArrayProxy<T> const & data,size_t stride,Dispatch const & d) const86911   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
86912   {
86913     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 ) );
86914     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::writeAccelerationStructuresPropertiesKHR" );
86915   }
86916 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86917 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86918 
86919 #ifdef VK_USE_PLATFORM_ANDROID_KHR
86920   template<typename Dispatch>
createAndroidSurfaceKHR(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const86921   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
86922   {
86923     return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
86924   }
86925 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86926   template<typename Dispatch>
createAndroidSurfaceKHR(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86927   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
86928   {
86929     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
86930     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
86931     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHR" );
86932   }
86933 #ifndef VULKAN_HPP_NO_SMART_HANDLE
86934   template<typename Dispatch>
createAndroidSurfaceKHRUnique(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86935   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86936   {
86937     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
86938     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
86939 
86940     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
86941     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHRUnique", deleter );
86942   }
86943 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
86944 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86945 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
86946 
86947   template<typename Dispatch>
createDebugReportCallbackEXT(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback,Dispatch const & d) const86948   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
86949   {
86950     return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugReportCallbackEXT*>( pCallback ) ) );
86951   }
86952 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86953   template<typename Dispatch>
createDebugReportCallbackEXT(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86954   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86955   {
86956     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
86957     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT*>( &callback ) ) );
86958     return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXT" );
86959   }
86960 #ifndef VULKAN_HPP_NO_SMART_HANDLE
86961   template<typename Dispatch>
createDebugReportCallbackEXTUnique(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86962   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86963   {
86964     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
86965     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT*>( &callback ) ) );
86966 
86967     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
86968     return createResultValue<DebugReportCallbackEXT,Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXTUnique", deleter );
86969   }
86970 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
86971 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86972 
86973   template<typename Dispatch>
createDebugUtilsMessengerEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger,Dispatch const & d) const86974   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
86975   {
86976     return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( pMessenger ) ) );
86977   }
86978 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86979   template<typename Dispatch>
createDebugUtilsMessengerEXT(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86980   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86981   {
86982     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
86983     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( &messenger ) ) );
86984     return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXT" );
86985   }
86986 #ifndef VULKAN_HPP_NO_SMART_HANDLE
86987   template<typename Dispatch>
createDebugUtilsMessengerEXTUnique(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86988   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
86989   {
86990     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
86991     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( &messenger ) ) );
86992 
86993     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
86994     return createResultValue<DebugUtilsMessengerEXT,Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXTUnique", deleter );
86995   }
86996 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
86997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86998 
86999 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
87000   template<typename Dispatch>
createDirectFBSurfaceEXT(const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87001   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
87002   {
87003     return static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87004   }
87005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87006   template<typename Dispatch>
createDirectFBSurfaceEXT(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87007   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
87008   {
87009     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87010     Result result = static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87011     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDirectFBSurfaceEXT" );
87012   }
87013 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87014   template<typename Dispatch>
createDirectFBSurfaceEXTUnique(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87015   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87016   {
87017     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87018     Result result = static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87019 
87020     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87021     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDirectFBSurfaceEXTUnique", deleter );
87022   }
87023 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87025 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
87026 
87027   template<typename Dispatch>
createDisplayPlaneSurfaceKHR(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87028   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
87029   {
87030     return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87031   }
87032 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87033   template<typename Dispatch>
createDisplayPlaneSurfaceKHR(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87034   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
87035   {
87036     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87037     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87038     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHR" );
87039   }
87040 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87041   template<typename Dispatch>
createDisplayPlaneSurfaceKHRUnique(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87042   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87043   {
87044     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87045     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87046 
87047     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87048     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHRUnique", deleter );
87049   }
87050 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87052 
87053   template<typename Dispatch>
createHeadlessSurfaceEXT(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87054   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
87055   {
87056     return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87057   }
87058 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87059   template<typename Dispatch>
createHeadlessSurfaceEXT(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87060   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
87061   {
87062     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87063     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87064     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXT" );
87065   }
87066 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87067   template<typename Dispatch>
createHeadlessSurfaceEXTUnique(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87068   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87069   {
87070     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87071     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87072 
87073     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87074     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXTUnique", deleter );
87075   }
87076 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87078 
87079 #ifdef VK_USE_PLATFORM_IOS_MVK
87080   template<typename Dispatch>
createIOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87081   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
87082   {
87083     return static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87084   }
87085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87086   template<typename Dispatch>
createIOSSurfaceMVK(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87087   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
87088   {
87089     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87090     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87091     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVK" );
87092   }
87093 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87094   template<typename Dispatch>
createIOSSurfaceMVKUnique(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87095   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87096   {
87097     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87098     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87099 
87100     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87101     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVKUnique", deleter );
87102   }
87103 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87104 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87105 #endif /*VK_USE_PLATFORM_IOS_MVK*/
87106 
87107 #ifdef VK_USE_PLATFORM_FUCHSIA
87108   template<typename Dispatch>
createImagePipeSurfaceFUCHSIA(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87109   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
87110   {
87111     return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87112   }
87113 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87114   template<typename Dispatch>
createImagePipeSurfaceFUCHSIA(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87115   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
87116   {
87117     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87118     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87119     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIA" );
87120   }
87121 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87122   template<typename Dispatch>
createImagePipeSurfaceFUCHSIAUnique(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87123   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87124   {
87125     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87126     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87127 
87128     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87129     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter );
87130   }
87131 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87133 #endif /*VK_USE_PLATFORM_FUCHSIA*/
87134 
87135 #ifdef VK_USE_PLATFORM_MACOS_MVK
87136   template<typename Dispatch>
createMacOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87137   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
87138   {
87139     return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87140   }
87141 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87142   template<typename Dispatch>
createMacOSSurfaceMVK(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87143   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
87144   {
87145     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87146     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87147     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVK" );
87148   }
87149 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87150   template<typename Dispatch>
createMacOSSurfaceMVKUnique(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87151   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87152   {
87153     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87154     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87155 
87156     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87157     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVKUnique", deleter );
87158   }
87159 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87160 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87161 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
87162 
87163 #ifdef VK_USE_PLATFORM_METAL_EXT
87164   template<typename Dispatch>
createMetalSurfaceEXT(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87165   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
87166   {
87167     return static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87168   }
87169 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87170   template<typename Dispatch>
createMetalSurfaceEXT(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87171   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
87172   {
87173     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87174     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87175     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXT" );
87176   }
87177 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87178   template<typename Dispatch>
createMetalSurfaceEXTUnique(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87179   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87180   {
87181     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87182     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87183 
87184     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87185     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXTUnique", deleter );
87186   }
87187 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87188 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87189 #endif /*VK_USE_PLATFORM_METAL_EXT*/
87190 
87191 #ifdef VK_USE_PLATFORM_GGP
87192   template<typename Dispatch>
createStreamDescriptorSurfaceGGP(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87193   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
87194   {
87195     return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87196   }
87197 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87198   template<typename Dispatch>
createStreamDescriptorSurfaceGGP(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87199   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
87200   {
87201     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87202     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87203     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGP" );
87204   }
87205 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87206   template<typename Dispatch>
createStreamDescriptorSurfaceGGPUnique(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87207   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87208   {
87209     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87210     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87211 
87212     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87213     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGPUnique", deleter );
87214   }
87215 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87216 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87217 #endif /*VK_USE_PLATFORM_GGP*/
87218 
87219 #ifdef VK_USE_PLATFORM_VI_NN
87220   template<typename Dispatch>
createViSurfaceNN(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87221   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
87222   {
87223     return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87224   }
87225 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87226   template<typename Dispatch>
createViSurfaceNN(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87227   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
87228   {
87229     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87230     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87231     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNN" );
87232   }
87233 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87234   template<typename Dispatch>
createViSurfaceNNUnique(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87235   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87236   {
87237     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87238     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87239 
87240     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87241     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNNUnique", deleter );
87242   }
87243 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87244 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87245 #endif /*VK_USE_PLATFORM_VI_NN*/
87246 
87247 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
87248   template<typename Dispatch>
createWaylandSurfaceKHR(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87249   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
87250   {
87251     return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87252   }
87253 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87254   template<typename Dispatch>
createWaylandSurfaceKHR(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87255   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
87256   {
87257     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87258     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87259     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHR" );
87260   }
87261 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87262   template<typename Dispatch>
createWaylandSurfaceKHRUnique(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87263   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87264   {
87265     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87266     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87267 
87268     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87269     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHRUnique", deleter );
87270   }
87271 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87273 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
87274 
87275 #ifdef VK_USE_PLATFORM_WIN32_KHR
87276   template<typename Dispatch>
createWin32SurfaceKHR(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87277   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
87278   {
87279     return static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87280   }
87281 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87282   template<typename Dispatch>
createWin32SurfaceKHR(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87283   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
87284   {
87285     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87286     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87287     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHR" );
87288   }
87289 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87290   template<typename Dispatch>
createWin32SurfaceKHRUnique(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87291   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87292   {
87293     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87294     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87295 
87296     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87297     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHRUnique", deleter );
87298   }
87299 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87300 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87301 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87302 
87303 #ifdef VK_USE_PLATFORM_XCB_KHR
87304   template<typename Dispatch>
createXcbSurfaceKHR(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87305   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
87306   {
87307     return static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87308   }
87309 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87310   template<typename Dispatch>
createXcbSurfaceKHR(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87311   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
87312   {
87313     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87314     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87315     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHR" );
87316   }
87317 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87318   template<typename Dispatch>
createXcbSurfaceKHRUnique(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87319   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87320   {
87321     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87322     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87323 
87324     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87325     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHRUnique", deleter );
87326   }
87327 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87329 #endif /*VK_USE_PLATFORM_XCB_KHR*/
87330 
87331 #ifdef VK_USE_PLATFORM_XLIB_KHR
87332   template<typename Dispatch>
createXlibSurfaceKHR(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const87333   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
87334   {
87335     return static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
87336   }
87337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87338   template<typename Dispatch>
createXlibSurfaceKHR(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87339   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
87340   {
87341     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87342     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87343     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHR" );
87344   }
87345 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87346   template<typename Dispatch>
createXlibSurfaceKHRUnique(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87347   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87348   {
87349     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
87350     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
87351 
87352     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
87353     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHRUnique", deleter );
87354   }
87355 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87357 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
87358 
87359 
87360   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) const87361   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
87362   {
87363     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
87364   }
87365 
87366 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87367   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) const87368   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
87369   {
87370     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
87371   }
87372 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87373 
87374 
87375   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const87376   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87377   {
87378     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87379   }
87380 
87381 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87382   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87383   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87384   {
87385     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
87386   }
87387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87388 
87389 
87390   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const87391   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87392   {
87393     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87394   }
87395 
87396 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87397   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87398   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87399   {
87400     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
87401   }
87402 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87403 
87404 
87405   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const87406   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87407   {
87408     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87409   }
87410 
87411 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87412   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87413   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87414   {
87415     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
87416   }
87417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87418 
87419 
87420   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const87421   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87422   {
87423     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87424   }
87425 
87426 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87427   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87428   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87429   {
87430     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
87431   }
87432 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87433 
87434 
87435   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const87436   VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87437   {
87438     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87439   }
87440 
87441 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87442   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87443   VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87444   {
87445     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
87446   }
87447 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87448 
87449 
87450   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const87451   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87452   {
87453     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87454   }
87455 
87456 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87457   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87458   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87459   {
87460     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
87461   }
87462 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87463 
87464 
87465   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const87466   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87467   {
87468     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87469   }
87470 
87471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87472   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87473   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87474   {
87475     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
87476   }
87477 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87478 
87479   template<typename Dispatch>
enumeratePhysicalDeviceGroups(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const87480   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
87481   {
87482     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
87483   }
87484 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87485   template<typename Allocator , typename Dispatch>
enumeratePhysicalDeviceGroups(Dispatch const & d) const87486   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Dispatch const &d ) const
87487   {
87488     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
87489     uint32_t physicalDeviceGroupCount;
87490     Result result;
87491     do
87492     {
87493       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
87494       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
87495       {
87496         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87497         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
87498       }
87499     } while ( result == Result::eIncomplete );
87500     if ( result == Result::eSuccess )
87501     {
87502       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
87503       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87504     }
87505     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
87506   }
87507   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type>
enumeratePhysicalDeviceGroups(Allocator const & vectorAllocator,Dispatch const & d) const87508   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const
87509   {
87510     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
87511     uint32_t physicalDeviceGroupCount;
87512     Result result;
87513     do
87514     {
87515       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
87516       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
87517       {
87518         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87519         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
87520       }
87521     } while ( result == Result::eIncomplete );
87522     if ( result == Result::eSuccess )
87523     {
87524       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
87525       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87526     }
87527     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
87528   }
87529 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87530 
87531   template<typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const87532   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
87533   {
87534     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
87535   }
87536 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87537   template<typename Allocator , typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Dispatch const & d) const87538   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Dispatch const &d ) const
87539   {
87540     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
87541     uint32_t physicalDeviceGroupCount;
87542     Result result;
87543     do
87544     {
87545       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
87546       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
87547       {
87548         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87549         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
87550       }
87551     } while ( result == Result::eIncomplete );
87552     if ( result == Result::eSuccess )
87553     {
87554       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
87555       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87556     }
87557     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
87558   }
87559   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type>
enumeratePhysicalDeviceGroupsKHR(Allocator const & vectorAllocator,Dispatch const & d) const87560   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
87561   {
87562     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
87563     uint32_t physicalDeviceGroupCount;
87564     Result result;
87565     do
87566     {
87567       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
87568       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
87569       {
87570         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87571         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
87572       }
87573     } while ( result == Result::eIncomplete );
87574     if ( result == Result::eSuccess )
87575     {
87576       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
87577       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
87578     }
87579     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
87580   }
87581 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87582 
87583   template<typename Dispatch>
enumeratePhysicalDevices(uint32_t * pPhysicalDeviceCount,VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,Dispatch const & d) const87584   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
87585   {
87586     return static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( pPhysicalDevices ) ) );
87587   }
87588 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87589   template<typename Allocator , typename Dispatch>
enumeratePhysicalDevices(Dispatch const & d) const87590   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Dispatch const &d ) const
87591   {
87592     std::vector<PhysicalDevice,Allocator> physicalDevices;
87593     uint32_t physicalDeviceCount;
87594     Result result;
87595     do
87596     {
87597       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
87598       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
87599       {
87600         physicalDevices.resize( physicalDeviceCount );
87601         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
87602       }
87603     } while ( result == Result::eIncomplete );
87604     if ( result == Result::eSuccess )
87605     {
87606       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
87607       physicalDevices.resize( physicalDeviceCount );
87608     }
87609     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
87610   }
87611   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type>
enumeratePhysicalDevices(Allocator const & vectorAllocator,Dispatch const & d) const87612   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const
87613   {
87614     std::vector<PhysicalDevice,Allocator> physicalDevices( vectorAllocator );
87615     uint32_t physicalDeviceCount;
87616     Result result;
87617     do
87618     {
87619       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
87620       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
87621       {
87622         physicalDevices.resize( physicalDeviceCount );
87623         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
87624       }
87625     } while ( result == Result::eIncomplete );
87626     if ( result == Result::eSuccess )
87627     {
87628       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
87629       physicalDevices.resize( physicalDeviceCount );
87630     }
87631     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
87632   }
87633 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87634 
87635   template<typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const87636   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
87637   {
87638     return d.vkGetInstanceProcAddr( m_instance, pName );
87639   }
87640 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87641   template<typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const87642   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
87643   {
87644     return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
87645   }
87646 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87647 
87648 
87649   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,Dispatch const & d) const87650   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
87651   {
87652     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( pCallbackData ) );
87653   }
87654 
87655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87656   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const DebugUtilsMessengerCallbackDataEXT & callbackData,Dispatch const & d) const87657   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
87658   {
87659     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( &callbackData ) );
87660   }
87661 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87662 
87663 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
87664   template<typename Dispatch>
acquireXlibDisplayEXT(Display * dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const87665   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
87666   {
87667     return static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
87668   }
87669 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87670   template<typename Dispatch>
acquireXlibDisplayEXT(Display & dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const87671   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
87672   {
87673     Result result = static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
87674     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::acquireXlibDisplayEXT" );
87675   }
87676 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87677 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
87678 
87679   template<typename Dispatch>
createDevice(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Device * pDevice,Dispatch const & d) const87680   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
87681   {
87682     return static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDevice*>( pDevice ) ) );
87683   }
87684 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87685   template<typename Dispatch>
createDevice(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87686   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
87687   {
87688     VULKAN_HPP_NAMESPACE::Device device;
87689     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice*>( &device ) ) );
87690     return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDevice" );
87691   }
87692 #ifndef VULKAN_HPP_NO_SMART_HANDLE
87693   template<typename Dispatch>
createDeviceUnique(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87694   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Device,Dispatch>>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
87695   {
87696     VULKAN_HPP_NAMESPACE::Device device;
87697     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice*>( &device ) ) );
87698 
87699     ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
87700     return createResultValue<Device,Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDeviceUnique", deleter );
87701   }
87702 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
87703 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87704 
87705   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) const87706   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
87707   {
87708     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 ) ) );
87709   }
87710 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87711   template<typename Dispatch>
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const87712   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
87713   {
87714     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
87715     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 AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDisplayModeKHR*>( &mode ) ) );
87716     return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDisplayModeKHR" );
87717   }
87718 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87719 
87720   template<typename Dispatch>
enumerateDeviceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d) const87721   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
87722   {
87723     return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
87724   }
87725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87726   template<typename Allocator , typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d) const87727   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d ) const
87728   {
87729     std::vector<ExtensionProperties,Allocator> properties;
87730     uint32_t propertyCount;
87731     Result result;
87732     do
87733     {
87734       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
87735       if ( ( result == Result::eSuccess ) && propertyCount )
87736       {
87737         properties.resize( propertyCount );
87738         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
87739       }
87740     } while ( result == Result::eIncomplete );
87741     if ( result == Result::eSuccess )
87742     {
87743       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
87744       properties.resize( propertyCount );
87745     }
87746     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
87747   }
87748   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const87749   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const
87750   {
87751     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
87752     uint32_t propertyCount;
87753     Result result;
87754     do
87755     {
87756       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
87757       if ( ( result == Result::eSuccess ) && propertyCount )
87758       {
87759         properties.resize( propertyCount );
87760         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
87761       }
87762     } while ( result == Result::eIncomplete );
87763     if ( result == Result::eSuccess )
87764     {
87765       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
87766       properties.resize( propertyCount );
87767     }
87768     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
87769   }
87770 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87771 
87772   template<typename Dispatch>
enumerateDeviceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d) const87773   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
87774   {
87775     return static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
87776   }
87777 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87778   template<typename Allocator , typename Dispatch>
enumerateDeviceLayerProperties(Dispatch const & d) const87779   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Dispatch const &d ) const
87780   {
87781     std::vector<LayerProperties,Allocator> properties;
87782     uint32_t propertyCount;
87783     Result result;
87784     do
87785     {
87786       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
87787       if ( ( result == Result::eSuccess ) && propertyCount )
87788       {
87789         properties.resize( propertyCount );
87790         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
87791       }
87792     } while ( result == Result::eIncomplete );
87793     if ( result == Result::eSuccess )
87794     {
87795       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
87796       properties.resize( propertyCount );
87797     }
87798     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
87799   }
87800   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type>
enumerateDeviceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d) const87801   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
87802   {
87803     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
87804     uint32_t propertyCount;
87805     Result result;
87806     do
87807     {
87808       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
87809       if ( ( result == Result::eSuccess ) && propertyCount )
87810       {
87811         properties.resize( propertyCount );
87812         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
87813       }
87814     } while ( result == Result::eIncomplete );
87815     if ( result == Result::eSuccess )
87816     {
87817       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
87818       properties.resize( propertyCount );
87819     }
87820     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
87821   }
87822 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87823 
87824 
87825   template <typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,uint32_t * pCounterCount,VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters,VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,Dispatch const & d) const87826   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
87827   {
87828     return static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast< VkPerformanceCounterKHR *>( pCounters ), reinterpret_cast< VkPerformanceCounterDescriptionKHR *>( pCounterDescriptions ) ) );
87829   }
87830 
87831 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87832   template <typename Allocator, typename Dispatch>
87833   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) const87834   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
87835   {
87836         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions;
87837     uint32_t counterCount;
87838     Result result;
87839     do
87840     {
87841       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
87842       if ( ( result == Result::eSuccess ) && counterCount )
87843       {
87844         counterDescriptions.resize( counterCount );
87845         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
87846       }
87847     } while ( result == Result::eIncomplete );
87848     if ( result == Result::eSuccess )
87849     {
87850       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
87851       counterDescriptions.resize( counterCount );
87852     }
87853     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
87854 
87855   }
87856 
87857   template <typename Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PerformanceCounterDescriptionKHR>::value, int>::type>
87858   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) const87859   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
87860   {
87861         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions( vectorAllocator );
87862     uint32_t counterCount;
87863     Result result;
87864     do
87865     {
87866       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
87867       if ( ( result == Result::eSuccess ) && counterCount )
87868       {
87869         counterDescriptions.resize( counterCount );
87870         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
87871       }
87872     } while ( result == Result::eIncomplete );
87873     if ( result == Result::eSuccess )
87874     {
87875       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
87876       counterDescriptions.resize( counterCount );
87877     }
87878     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
87879 
87880   }
87881 
87882   template <typename PerformanceCounterKHRAllocator, typename PerformanceCounterDescriptionKHRAllocator, typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,Dispatch const & d) const87883   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
87884   {
87885     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> enumeratedData;
87886     uint32_t counterCount;
87887     Result result;
87888     do
87889     {
87890       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
87891       if ( ( result == Result::eSuccess ) && counterCount )
87892       {
87893         enumeratedData.first.resize( counterCount );
87894         enumeratedData.second.resize( counterCount );
87895         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( enumeratedData.first.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( enumeratedData.second.data() ) ) );
87896         VULKAN_HPP_ASSERT( counterCount <= enumeratedData.first.size() );
87897       }
87898     } while ( result == Result::eIncomplete );
87899     if ( ( result == Result::eSuccess ) && ( counterCount < enumeratedData.first.size() ) )
87900     {
87901       enumeratedData.first.resize( counterCount );
87902       enumeratedData.second.resize( counterCount );
87903     }
87904     return createResultValue( result, enumeratedData, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
87905   }
87906 
87907   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 & countersAllocator,PerformanceCounterDescriptionKHRAllocator & counterDescriptionsAllocator,Dispatch const & d) const87908   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 & countersAllocator, PerformanceCounterDescriptionKHRAllocator & counterDescriptionsAllocator, Dispatch const & d ) const
87909   {
87910     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> enumeratedData( std::piecewise_construct, std::forward_as_tuple( countersAllocator ), std::forward_as_tuple( counterDescriptionsAllocator ) );
87911     uint32_t counterCount;
87912     Result result;
87913     do
87914     {
87915       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
87916       if ( ( result == Result::eSuccess ) && counterCount )
87917       {
87918         enumeratedData.first.resize( counterCount );
87919         enumeratedData.second.resize( counterCount );
87920         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( enumeratedData.first.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( enumeratedData.second.data() ) ) );
87921         VULKAN_HPP_ASSERT( counterCount <= enumeratedData.first.size() );
87922       }
87923     } while ( result == Result::eIncomplete );
87924     if ( ( result == Result::eSuccess ) && ( counterCount < enumeratedData.first.size() ) )
87925     {
87926       enumeratedData.first.resize( counterCount );
87927       enumeratedData.second.resize( counterCount );
87928     }
87929     return createResultValue( result, enumeratedData, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
87930   }
87931 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87932 
87933   template<typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,Dispatch const & d) const87934   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
87935   {
87936     return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( pProperties ) ) );
87937   }
87938 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87939   template<typename Allocator , typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const87940   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
87941   {
87942     std::vector<DisplayModeProperties2KHR,Allocator> properties;
87943     uint32_t propertyCount;
87944     Result result;
87945     do
87946     {
87947       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
87948       if ( ( result == Result::eSuccess ) && propertyCount )
87949       {
87950         properties.resize( propertyCount );
87951         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
87952       }
87953     } while ( result == Result::eIncomplete );
87954     if ( result == Result::eSuccess )
87955     {
87956       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
87957       properties.resize( propertyCount );
87958     }
87959     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
87960   }
87961   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const87962   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
87963   {
87964     std::vector<DisplayModeProperties2KHR,Allocator> properties( vectorAllocator );
87965     uint32_t propertyCount;
87966     Result result;
87967     do
87968     {
87969       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
87970       if ( ( result == Result::eSuccess ) && propertyCount )
87971       {
87972         properties.resize( propertyCount );
87973         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
87974       }
87975     } while ( result == Result::eIncomplete );
87976     if ( result == Result::eSuccess )
87977     {
87978       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
87979       properties.resize( propertyCount );
87980     }
87981     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
87982   }
87983 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87984 
87985   template<typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,Dispatch const & d) const87986   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
87987   {
87988     return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( pProperties ) ) );
87989   }
87990 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87991   template<typename Allocator , typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const87992   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const
87993   {
87994     std::vector<DisplayModePropertiesKHR,Allocator> properties;
87995     uint32_t propertyCount;
87996     Result result;
87997     do
87998     {
87999       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
88000       if ( ( result == Result::eSuccess ) && propertyCount )
88001       {
88002         properties.resize( propertyCount );
88003         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
88004       }
88005     } while ( result == Result::eIncomplete );
88006     if ( result == Result::eSuccess )
88007     {
88008       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88009       properties.resize( propertyCount );
88010     }
88011     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
88012   }
88013   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const88014   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
88015   {
88016     std::vector<DisplayModePropertiesKHR,Allocator> properties( vectorAllocator );
88017     uint32_t propertyCount;
88018     Result result;
88019     do
88020     {
88021       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
88022       if ( ( result == Result::eSuccess ) && propertyCount )
88023       {
88024         properties.resize( propertyCount );
88025         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
88026       }
88027     } while ( result == Result::eIncomplete );
88028     if ( result == Result::eSuccess )
88029     {
88030       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88031       properties.resize( propertyCount );
88032     }
88033     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
88034   }
88035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88036 
88037   template<typename Dispatch>
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,Dispatch const & d) const88038   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
88039   {
88040     return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( pDisplayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( pCapabilities ) ) );
88041   }
88042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88043   template<typename Dispatch>
getDisplayPlaneCapabilities2KHR(const DisplayPlaneInfo2KHR & displayPlaneInfo,Dispatch const & d) const88044   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
88045   {
88046     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
88047     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( &displayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( &capabilities ) ) );
88048     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
88049   }
88050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88051 
88052   template<typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,Dispatch const & d) const88053   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
88054   {
88055     return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( pCapabilities ) ) );
88056   }
88057 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88058   template<typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,Dispatch const & d) const88059   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
88060   {
88061     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
88062     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( &capabilities ) ) );
88063     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
88064   }
88065 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88066 
88067   template<typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,uint32_t * pDisplayCount,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,Dispatch const & d) const88068   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
88069   {
88070     return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast<VkDisplayKHR*>( pDisplays ) ) );
88071   }
88072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88073   template<typename Allocator , typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Dispatch const & d) const88074   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d ) const
88075   {
88076     std::vector<DisplayKHR,Allocator> displays;
88077     uint32_t displayCount;
88078     Result result;
88079     do
88080     {
88081       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
88082       if ( ( result == Result::eSuccess ) && displayCount )
88083       {
88084         displays.resize( displayCount );
88085         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
88086       }
88087     } while ( result == Result::eIncomplete );
88088     if ( result == Result::eSuccess )
88089     {
88090       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
88091       displays.resize( displayCount );
88092     }
88093     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
88094   }
88095   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Allocator const & vectorAllocator,Dispatch const & d) const88096   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const
88097   {
88098     std::vector<DisplayKHR,Allocator> displays( vectorAllocator );
88099     uint32_t displayCount;
88100     Result result;
88101     do
88102     {
88103       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
88104       if ( ( result == Result::eSuccess ) && displayCount )
88105       {
88106         displays.resize( displayCount );
88107         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
88108       }
88109     } while ( result == Result::eIncomplete );
88110     if ( result == Result::eSuccess )
88111     {
88112       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
88113       displays.resize( displayCount );
88114     }
88115     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
88116   }
88117 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88118 
88119   template<typename Dispatch>
getCalibrateableTimeDomainsEXT(uint32_t * pTimeDomainCount,VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,Dispatch const & d) const88120   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88121   {
88122     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( pTimeDomains ) ) );
88123   }
88124 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88125   template<typename Allocator , typename Dispatch>
getCalibrateableTimeDomainsEXT(Dispatch const & d) const88126   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Dispatch const &d ) const
88127   {
88128     std::vector<TimeDomainEXT,Allocator> timeDomains;
88129     uint32_t timeDomainCount;
88130     Result result;
88131     do
88132     {
88133       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
88134       if ( ( result == Result::eSuccess ) && timeDomainCount )
88135       {
88136         timeDomains.resize( timeDomainCount );
88137         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
88138       }
88139     } while ( result == Result::eIncomplete );
88140     if ( result == Result::eSuccess )
88141     {
88142       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
88143       timeDomains.resize( timeDomainCount );
88144     }
88145     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
88146   }
88147   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type>
getCalibrateableTimeDomainsEXT(Allocator const & vectorAllocator,Dispatch const & d) const88148   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
88149   {
88150     std::vector<TimeDomainEXT,Allocator> timeDomains( vectorAllocator );
88151     uint32_t timeDomainCount;
88152     Result result;
88153     do
88154     {
88155       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
88156       if ( ( result == Result::eSuccess ) && timeDomainCount )
88157       {
88158         timeDomains.resize( timeDomainCount );
88159         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
88160       }
88161     } while ( result == Result::eIncomplete );
88162     if ( result == Result::eSuccess )
88163     {
88164       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
88165       timeDomains.resize( timeDomainCount );
88166     }
88167     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
88168   }
88169 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88170 
88171   template<typename Dispatch>
getCooperativeMatrixPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties,Dispatch const & d) const88172   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88173   {
88174     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( pProperties ) ) );
88175   }
88176 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88177   template<typename Allocator , typename Dispatch>
getCooperativeMatrixPropertiesNV(Dispatch const & d) const88178   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Dispatch const &d ) const
88179   {
88180     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties;
88181     uint32_t propertyCount;
88182     Result result;
88183     do
88184     {
88185       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
88186       if ( ( result == Result::eSuccess ) && propertyCount )
88187       {
88188         properties.resize( propertyCount );
88189         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
88190       }
88191     } while ( result == Result::eIncomplete );
88192     if ( result == Result::eSuccess )
88193     {
88194       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88195       properties.resize( propertyCount );
88196     }
88197     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
88198   }
88199   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type>
getCooperativeMatrixPropertiesNV(Allocator const & vectorAllocator,Dispatch const & d) const88200   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const
88201   {
88202     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties( vectorAllocator );
88203     uint32_t propertyCount;
88204     Result result;
88205     do
88206     {
88207       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
88208       if ( ( result == Result::eSuccess ) && propertyCount )
88209       {
88210         properties.resize( propertyCount );
88211         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
88212       }
88213     } while ( result == Result::eIncomplete );
88214     if ( result == Result::eSuccess )
88215     {
88216       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88217       properties.resize( propertyCount );
88218     }
88219     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
88220   }
88221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88222 
88223 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
88224   template<typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB * dfb,Dispatch const & d) const88225   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88226   {
88227     return static_cast<Bool32>( d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) );
88228   }
88229 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88230   template<typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB & dfb,Dispatch const & d) const88231   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88232   {
88233     return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb );
88234   }
88235 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88236 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
88237 
88238   template<typename Dispatch>
getDisplayPlaneProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,Dispatch const & d) const88239   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88240   {
88241     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( pProperties ) ) );
88242   }
88243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88244   template<typename Allocator , typename Dispatch>
getDisplayPlaneProperties2KHR(Dispatch const & d) const88245   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Dispatch const &d ) const
88246   {
88247     std::vector<DisplayPlaneProperties2KHR,Allocator> properties;
88248     uint32_t propertyCount;
88249     Result result;
88250     do
88251     {
88252       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
88253       if ( ( result == Result::eSuccess ) && propertyCount )
88254       {
88255         properties.resize( propertyCount );
88256         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
88257       }
88258     } while ( result == Result::eIncomplete );
88259     if ( result == Result::eSuccess )
88260     {
88261       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88262       properties.resize( propertyCount );
88263     }
88264     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
88265   }
88266   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type>
getDisplayPlaneProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const88267   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
88268   {
88269     std::vector<DisplayPlaneProperties2KHR,Allocator> properties( vectorAllocator );
88270     uint32_t propertyCount;
88271     Result result;
88272     do
88273     {
88274       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
88275       if ( ( result == Result::eSuccess ) && propertyCount )
88276       {
88277         properties.resize( propertyCount );
88278         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
88279       }
88280     } while ( result == Result::eIncomplete );
88281     if ( result == Result::eSuccess )
88282     {
88283       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88284       properties.resize( propertyCount );
88285     }
88286     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
88287   }
88288 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88289 
88290   template<typename Dispatch>
getDisplayPlanePropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,Dispatch const & d) const88291   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88292   {
88293     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( pProperties ) ) );
88294   }
88295 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88296   template<typename Allocator , typename Dispatch>
getDisplayPlanePropertiesKHR(Dispatch const & d) const88297   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Dispatch const &d ) const
88298   {
88299     std::vector<DisplayPlanePropertiesKHR,Allocator> properties;
88300     uint32_t propertyCount;
88301     Result result;
88302     do
88303     {
88304       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
88305       if ( ( result == Result::eSuccess ) && propertyCount )
88306       {
88307         properties.resize( propertyCount );
88308         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
88309       }
88310     } while ( result == Result::eIncomplete );
88311     if ( result == Result::eSuccess )
88312     {
88313       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88314       properties.resize( propertyCount );
88315     }
88316     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
88317   }
88318   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type>
getDisplayPlanePropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const88319   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
88320   {
88321     std::vector<DisplayPlanePropertiesKHR,Allocator> properties( vectorAllocator );
88322     uint32_t propertyCount;
88323     Result result;
88324     do
88325     {
88326       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
88327       if ( ( result == Result::eSuccess ) && propertyCount )
88328       {
88329         properties.resize( propertyCount );
88330         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
88331       }
88332     } while ( result == Result::eIncomplete );
88333     if ( result == Result::eSuccess )
88334     {
88335       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88336       properties.resize( propertyCount );
88337     }
88338     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
88339   }
88340 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88341 
88342   template<typename Dispatch>
getDisplayProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,Dispatch const & d) const88343   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88344   {
88345     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( pProperties ) ) );
88346   }
88347 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88348   template<typename Allocator , typename Dispatch>
getDisplayProperties2KHR(Dispatch const & d) const88349   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Dispatch const &d ) const
88350   {
88351     std::vector<DisplayProperties2KHR,Allocator> properties;
88352     uint32_t propertyCount;
88353     Result result;
88354     do
88355     {
88356       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
88357       if ( ( result == Result::eSuccess ) && propertyCount )
88358       {
88359         properties.resize( propertyCount );
88360         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
88361       }
88362     } while ( result == Result::eIncomplete );
88363     if ( result == Result::eSuccess )
88364     {
88365       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88366       properties.resize( propertyCount );
88367     }
88368     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
88369   }
88370   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type>
getDisplayProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const88371   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
88372   {
88373     std::vector<DisplayProperties2KHR,Allocator> properties( vectorAllocator );
88374     uint32_t propertyCount;
88375     Result result;
88376     do
88377     {
88378       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
88379       if ( ( result == Result::eSuccess ) && propertyCount )
88380       {
88381         properties.resize( propertyCount );
88382         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
88383       }
88384     } while ( result == Result::eIncomplete );
88385     if ( result == Result::eSuccess )
88386     {
88387       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88388       properties.resize( propertyCount );
88389     }
88390     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
88391   }
88392 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88393 
88394   template<typename Dispatch>
getDisplayPropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,Dispatch const & d) const88395   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88396   {
88397     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( pProperties ) ) );
88398   }
88399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88400   template<typename Allocator , typename Dispatch>
getDisplayPropertiesKHR(Dispatch const & d) const88401   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Dispatch const &d ) const
88402   {
88403     std::vector<DisplayPropertiesKHR,Allocator> properties;
88404     uint32_t propertyCount;
88405     Result result;
88406     do
88407     {
88408       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
88409       if ( ( result == Result::eSuccess ) && propertyCount )
88410       {
88411         properties.resize( propertyCount );
88412         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
88413       }
88414     } while ( result == Result::eIncomplete );
88415     if ( result == Result::eSuccess )
88416     {
88417       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88418       properties.resize( propertyCount );
88419     }
88420     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
88421   }
88422   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type>
getDisplayPropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const88423   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
88424   {
88425     std::vector<DisplayPropertiesKHR,Allocator> properties( vectorAllocator );
88426     uint32_t propertyCount;
88427     Result result;
88428     do
88429     {
88430       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
88431       if ( ( result == Result::eSuccess ) && propertyCount )
88432       {
88433         properties.resize( propertyCount );
88434         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
88435       }
88436     } while ( result == Result::eIncomplete );
88437     if ( result == Result::eSuccess )
88438     {
88439       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
88440       properties.resize( propertyCount );
88441     }
88442     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
88443   }
88444 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88445 
88446   template<typename Dispatch>
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const88447   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88448   {
88449     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
88450   }
88451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88452   template<typename Dispatch>
getExternalBufferProperties(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const88453   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88454   {
88455     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
88456     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
88457     return externalBufferProperties;
88458   }
88459 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88460 
88461   template<typename Dispatch>
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const88462   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88463   {
88464     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
88465   }
88466 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88467   template<typename Dispatch>
getExternalBufferPropertiesKHR(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const88468   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88469   {
88470     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
88471     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
88472     return externalBufferProperties;
88473   }
88474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88475 
88476   template<typename Dispatch>
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const88477   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88478   {
88479     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
88480   }
88481 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88482   template<typename Dispatch>
getExternalFenceProperties(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const88483   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88484   {
88485     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
88486     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
88487     return externalFenceProperties;
88488   }
88489 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88490 
88491   template<typename Dispatch>
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const88492   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88493   {
88494     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
88495   }
88496 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88497   template<typename Dispatch>
getExternalFencePropertiesKHR(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const88498   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88499   {
88500     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
88501     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
88502     return externalFenceProperties;
88503   }
88504 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88505 
88506   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) const88507   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
88508   {
88509     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 ) ) );
88510   }
88511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88512   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) const88513   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
88514   {
88515     VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
88516     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 ) ) );
88517     return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getExternalImageFormatPropertiesNV" );
88518   }
88519 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88520 
88521   template<typename Dispatch>
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const88522   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88523   {
88524     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
88525   }
88526 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88527   template<typename Dispatch>
getExternalSemaphoreProperties(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const88528   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88529   {
88530     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
88531     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
88532     return externalSemaphoreProperties;
88533   }
88534 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88535 
88536   template<typename Dispatch>
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const88537   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88538   {
88539     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
88540   }
88541 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88542   template<typename Dispatch>
getExternalSemaphorePropertiesKHR(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const88543   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88544   {
88545     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
88546     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
88547     return externalSemaphoreProperties;
88548   }
88549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88550 
88551   template<typename Dispatch>
getFeatures(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures,Dispatch const & d) const88552   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88553   {
88554     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( pFeatures ) );
88555   }
88556 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88557   template<typename Dispatch>
getFeatures(Dispatch const & d) const88558   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88559   {
88560     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
88561     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( &features ) );
88562     return features;
88563   }
88564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88565 
88566   template<typename Dispatch>
getFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const88567   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88568   {
88569     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
88570   }
88571 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88572   template<typename Dispatch>
getFeatures2(Dispatch const & d) const88573   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88574   {
88575     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
88576     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
88577     return features;
88578   }
88579   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFeatures2(Dispatch const & d) const88580   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88581   {
88582     StructureChain<X, Y, Z...> structureChain;
88583     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2& features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
88584     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
88585     return structureChain;
88586   }
88587 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88588 
88589   template<typename Dispatch>
getFeatures2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const88590   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88591   {
88592     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
88593   }
88594 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88595   template<typename Dispatch>
getFeatures2KHR(Dispatch const & d) const88596   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88597   {
88598     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
88599     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
88600     return features;
88601   }
88602   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFeatures2KHR(Dispatch const & d) const88603   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88604   {
88605     StructureChain<X, Y, Z...> structureChain;
88606     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2& features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
88607     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
88608     return structureChain;
88609   }
88610 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88611 
88612   template<typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,Dispatch const & d) const88613   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88614   {
88615     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( pFormatProperties ) );
88616   }
88617 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88618   template<typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const88619   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88620   {
88621     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
88622     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( &formatProperties ) );
88623     return formatProperties;
88624   }
88625 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88626 
88627   template<typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const88628   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88629   {
88630     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
88631   }
88632 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88633   template<typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const88634   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88635   {
88636     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
88637     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
88638     return formatProperties;
88639   }
88640   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const88641   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88642   {
88643     StructureChain<X, Y, Z...> structureChain;
88644     VULKAN_HPP_NAMESPACE::FormatProperties2& formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
88645     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
88646     return structureChain;
88647   }
88648 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88649 
88650   template<typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const88651   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88652   {
88653     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
88654   }
88655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88656   template<typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const88657   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88658   {
88659     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
88660     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
88661     return formatProperties;
88662   }
88663   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const88664   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88665   {
88666     StructureChain<X, Y, Z...> structureChain;
88667     VULKAN_HPP_NAMESPACE::FormatProperties2& formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
88668     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
88669     return structureChain;
88670   }
88671 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88672 
88673   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) const88674   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
88675   {
88676     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 ) ) );
88677   }
88678 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88679   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) const88680   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
88681   {
88682     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
88683     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 ) ) );
88684     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties" );
88685   }
88686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88687 
88688   template<typename Dispatch>
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const88689   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
88690   {
88691     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
88692   }
88693 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88694   template<typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const88695   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
88696   {
88697     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
88698     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
88699     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
88700   }
88701   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const88702   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
88703   {
88704     StructureChain<X, Y, Z...> structureChain;
88705     VULKAN_HPP_NAMESPACE::ImageFormatProperties2& imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
88706     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
88707     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
88708   }
88709 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88710 
88711   template<typename Dispatch>
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const88712   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
88713   {
88714     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
88715   }
88716 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88717   template<typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const88718   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
88719   {
88720     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
88721     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
88722     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
88723   }
88724   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const88725   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
88726   {
88727     StructureChain<X, Y, Z...> structureChain;
88728     VULKAN_HPP_NAMESPACE::ImageFormatProperties2& imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
88729     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
88730     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
88731   }
88732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88733 
88734   template<typename Dispatch>
getMemoryProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,Dispatch const & d) const88735   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88736   {
88737     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( pMemoryProperties ) );
88738   }
88739 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88740   template<typename Dispatch>
getMemoryProperties(Dispatch const & d) const88741   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88742   {
88743     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
88744     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( &memoryProperties ) );
88745     return memoryProperties;
88746   }
88747 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88748 
88749   template<typename Dispatch>
getMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const88750   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88751   {
88752     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
88753   }
88754 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88755   template<typename Dispatch>
getMemoryProperties2(Dispatch const & d) const88756   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88757   {
88758     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
88759     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
88760     return memoryProperties;
88761   }
88762   template<typename X, typename Y, typename ...Z, typename Dispatch>
getMemoryProperties2(Dispatch const & d) const88763   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88764   {
88765     StructureChain<X, Y, Z...> structureChain;
88766     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
88767     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
88768     return structureChain;
88769   }
88770 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88771 
88772   template<typename Dispatch>
getMemoryProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const88773   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88774   {
88775     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
88776   }
88777 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88778   template<typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const88779   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88780   {
88781     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
88782     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
88783     return memoryProperties;
88784   }
88785   template<typename X, typename Y, typename ...Z, typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const88786   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88787   {
88788     StructureChain<X, Y, Z...> structureChain;
88789     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
88790     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
88791     return structureChain;
88792   }
88793 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88794 
88795   template<typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,Dispatch const & d) const88796   VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88797   {
88798     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( pMultisampleProperties ) );
88799   }
88800 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88801   template<typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,Dispatch const & d) const88802   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88803   {
88804     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
88805     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( &multisampleProperties ) );
88806     return multisampleProperties;
88807   }
88808 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88809 
88810   template<typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pRectCount,VULKAN_HPP_NAMESPACE::Rect2D * pRects,Dispatch const & d) const88811   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
88812   {
88813     return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast<VkRect2D*>( pRects ) ) );
88814   }
88815 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88816   template<typename Allocator , typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const88817   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
88818   {
88819     std::vector<Rect2D,Allocator> rects;
88820     uint32_t rectCount;
88821     Result result;
88822     do
88823     {
88824       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
88825       if ( ( result == Result::eSuccess ) && rectCount )
88826       {
88827         rects.resize( rectCount );
88828         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
88829       }
88830     } while ( result == Result::eIncomplete );
88831     if ( result == Result::eSuccess )
88832     {
88833       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
88834       rects.resize( rectCount );
88835     }
88836     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
88837   }
88838   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const88839   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
88840   {
88841     std::vector<Rect2D,Allocator> rects( vectorAllocator );
88842     uint32_t rectCount;
88843     Result result;
88844     do
88845     {
88846       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
88847       if ( ( result == Result::eSuccess ) && rectCount )
88848       {
88849         rects.resize( rectCount );
88850         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
88851       }
88852     } while ( result == Result::eIncomplete );
88853     if ( result == Result::eSuccess )
88854     {
88855       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
88856       rects.resize( rectCount );
88857     }
88858     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
88859   }
88860 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88861 
88862   template<typename Dispatch>
getProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,Dispatch const & d) const88863   VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88864   {
88865     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( pProperties ) );
88866   }
88867 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88868   template<typename Dispatch>
getProperties(Dispatch const & d) const88869   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88870   {
88871     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
88872     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( &properties ) );
88873     return properties;
88874   }
88875 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88876 
88877   template<typename Dispatch>
getProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const88878   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88879   {
88880     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
88881   }
88882 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88883   template<typename Dispatch>
getProperties2(Dispatch const & d) const88884   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88885   {
88886     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
88887     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
88888     return properties;
88889   }
88890   template<typename X, typename Y, typename ...Z, typename Dispatch>
getProperties2(Dispatch const & d) const88891   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88892   {
88893     StructureChain<X, Y, Z...> structureChain;
88894     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2& properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
88895     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
88896     return structureChain;
88897   }
88898 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88899 
88900   template<typename Dispatch>
getProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const88901   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88902   {
88903     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
88904   }
88905 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88906   template<typename Dispatch>
getProperties2KHR(Dispatch const & d) const88907   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88908   {
88909     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
88910     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
88911     return properties;
88912   }
88913   template<typename X, typename Y, typename ...Z, typename Dispatch>
getProperties2KHR(Dispatch const & d) const88914   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88915   {
88916     StructureChain<X, Y, Z...> structureChain;
88917     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2& properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
88918     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
88919     return structureChain;
88920   }
88921 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88922 
88923   template<typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses,Dispatch const & d) const88924   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88925   {
88926     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( pPerformanceQueryCreateInfo ), pNumPasses );
88927   }
88928 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88929   template<typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo,Dispatch const & d) const88930   VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
88931   {
88932     uint32_t numPasses;
88933     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( &performanceQueryCreateInfo ), &numPasses );
88934     return numPasses;
88935   }
88936 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88937 
88938 
88939   template <typename Dispatch>
getQueueFamilyProperties(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,Dispatch const & d) const88940   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88941   {
88942     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties *>( pQueueFamilyProperties ) );
88943   }
88944 
88945 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88946   template <typename QueueFamilyPropertiesAllocator, typename Dispatch>
getQueueFamilyProperties(Dispatch const & d) const88947   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const
88948   {
88949     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties;
88950     uint32_t queueFamilyPropertyCount;
88951     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
88952     queueFamilyProperties.resize( queueFamilyPropertyCount );
88953     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
88954     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
88955     return queueFamilyProperties;
88956   }
88957 
88958   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) const88959   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const
88960   {
88961     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties( queueFamilyPropertiesAllocator );
88962     uint32_t queueFamilyPropertyCount;
88963     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
88964     queueFamilyProperties.resize( queueFamilyPropertyCount );
88965     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
88966     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
88967     return queueFamilyProperties;
88968   }
88969 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88970 
88971   template<typename Dispatch>
getQueueFamilyProperties2(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const88972   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
88973   {
88974     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
88975   }
88976 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88977   template<typename Allocator , typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const88978   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
88979   {
88980     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
88981     uint32_t queueFamilyPropertyCount;
88982     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
88983     queueFamilyProperties.resize( queueFamilyPropertyCount );
88984     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
88985     return queueFamilyProperties;
88986   }
88987   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const88988   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
88989   {
88990     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
88991     uint32_t queueFamilyPropertyCount;
88992     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
88993     queueFamilyProperties.resize( queueFamilyPropertyCount );
88994     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
88995     return queueFamilyProperties;
88996   }
88997   template<typename StructureChain, typename Allocator , typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const88998   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
88999   {
89000     std::vector<StructureChain,Allocator> queueFamilyProperties;
89001     uint32_t queueFamilyPropertyCount;
89002     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
89003     queueFamilyProperties.resize( queueFamilyPropertyCount );
89004     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
89005     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89006     {
89007       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
89008     }
89009     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
89010     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89011     {
89012       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
89013     }
89014     return queueFamilyProperties;
89015   }
89016   template<typename StructureChain, typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const89017   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
89018   {
89019     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
89020     uint32_t queueFamilyPropertyCount;
89021     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
89022     queueFamilyProperties.resize( queueFamilyPropertyCount );
89023     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
89024     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89025     {
89026       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
89027     }
89028     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
89029     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89030     {
89031       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
89032     }
89033     return queueFamilyProperties;
89034   }
89035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89036 
89037   template<typename Dispatch>
getQueueFamilyProperties2KHR(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const89038   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89039   {
89040     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
89041   }
89042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89043   template<typename Allocator , typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const89044   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
89045   {
89046     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
89047     uint32_t queueFamilyPropertyCount;
89048     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
89049     queueFamilyProperties.resize( queueFamilyPropertyCount );
89050     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
89051     return queueFamilyProperties;
89052   }
89053   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const89054   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
89055   {
89056     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
89057     uint32_t queueFamilyPropertyCount;
89058     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
89059     queueFamilyProperties.resize( queueFamilyPropertyCount );
89060     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
89061     return queueFamilyProperties;
89062   }
89063   template<typename StructureChain, typename Allocator , typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const89064   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
89065   {
89066     std::vector<StructureChain,Allocator> queueFamilyProperties;
89067     uint32_t queueFamilyPropertyCount;
89068     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
89069     queueFamilyProperties.resize( queueFamilyPropertyCount );
89070     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
89071     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89072     {
89073       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
89074     }
89075     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
89076     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89077     {
89078       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
89079     }
89080     return queueFamilyProperties;
89081   }
89082   template<typename StructureChain, typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const89083   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
89084   {
89085     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
89086     uint32_t queueFamilyPropertyCount;
89087     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
89088     queueFamilyProperties.resize( queueFamilyPropertyCount );
89089     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> localVector( queueFamilyPropertyCount );
89090     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89091     {
89092       localVector[i].pNext = queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
89093     }
89094     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( localVector.data() ) );
89095     for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ )
89096     {
89097       queueFamilyProperties[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = localVector[i];
89098     }
89099     return queueFamilyProperties;
89100   }
89101 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89102 
89103 
89104   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) const89105   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
89106   {
89107     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 ) );
89108   }
89109 
89110 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89111   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) const89112   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
89113   {
89114     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties;
89115     uint32_t propertyCount;
89116     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 );
89117     properties.resize( propertyCount );
89118     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() ) );
89119     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89120     return properties;
89121   }
89122 
89123   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 & propertiesAllocator,Dispatch const & d) const89124   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 & propertiesAllocator, Dispatch const & d ) const
89125   {
89126     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties( propertiesAllocator );
89127     uint32_t propertyCount;
89128     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 );
89129     properties.resize( propertyCount );
89130     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() ) );
89131     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89132     return properties;
89133   }
89134 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89135 
89136 
89137   template <typename Dispatch>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const89138   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
89139   {
89140     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
89141   }
89142 
89143 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89144   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const89145   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
89146   {
89147     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
89148     uint32_t propertyCount;
89149     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
89150     properties.resize( propertyCount );
89151     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
89152     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89153     return properties;
89154   }
89155 
89156   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 & propertiesAllocator,Dispatch const & d) const89157   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & propertiesAllocator, Dispatch const & d ) const
89158   {
89159     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( propertiesAllocator );
89160     uint32_t propertyCount;
89161     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
89162     properties.resize( propertyCount );
89163     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
89164     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89165     return properties;
89166   }
89167 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89168 
89169   template <typename Dispatch>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const89170   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
89171   {
89172     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
89173   }
89174 
89175 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89176   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const89177   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
89178   {
89179     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
89180     uint32_t propertyCount;
89181     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
89182     properties.resize( propertyCount );
89183     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
89184     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89185     return properties;
89186   }
89187 
89188   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 & propertiesAllocator,Dispatch const & d) const89189   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & propertiesAllocator, Dispatch const & d ) const
89190   {
89191     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( propertiesAllocator );
89192     uint32_t propertyCount;
89193     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
89194     properties.resize( propertyCount );
89195     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
89196     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89197     return properties;
89198   }
89199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89200 
89201   template<typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t * pCombinationCount,VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations,Dispatch const & d) const89202   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89203   {
89204     return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( pCombinations ) ) );
89205   }
89206 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89207   template<typename Allocator , typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const & d) const89208   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d ) const
89209   {
89210     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations;
89211     uint32_t combinationCount;
89212     Result result;
89213     do
89214     {
89215       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
89216       if ( ( result == Result::eSuccess ) && combinationCount )
89217       {
89218         combinations.resize( combinationCount );
89219         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
89220       }
89221     } while ( result == Result::eIncomplete );
89222     if ( result == Result::eSuccess )
89223     {
89224       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
89225       combinations.resize( combinationCount );
89226     }
89227     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
89228   }
89229   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type>
getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const & vectorAllocator,Dispatch const & d) const89230   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const
89231   {
89232     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations( vectorAllocator );
89233     uint32_t combinationCount;
89234     Result result;
89235     do
89236     {
89237       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
89238       if ( ( result == Result::eSuccess ) && combinationCount )
89239       {
89240         combinations.resize( combinationCount );
89241         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
89242       }
89243     } while ( result == Result::eIncomplete );
89244     if ( result == Result::eSuccess )
89245     {
89246       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
89247       combinations.resize( combinationCount );
89248     }
89249     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
89250   }
89251 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89252 
89253   template<typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,Dispatch const & d) const89254   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
89255   {
89256     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( pSurfaceCapabilities ) ) );
89257   }
89258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89259   template<typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const89260   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
89261   {
89262     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
89263     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( &surfaceCapabilities ) ) );
89264     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2EXT" );
89265   }
89266 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89267 
89268   template<typename Dispatch>
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities,Dispatch const & d) const89269   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
89270   {
89271     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( pSurfaceCapabilities ) ) );
89272   }
89273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89274   template<typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const89275   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
89276   {
89277     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
89278     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
89279     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
89280   }
89281   template<typename X, typename Y, typename ...Z, typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const89282   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
89283   {
89284     StructureChain<X, Y, Z...> structureChain;
89285     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR& surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
89286     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
89287     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
89288   }
89289 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89290 
89291   template<typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,Dispatch const & d) const89292   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
89293   {
89294     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( pSurfaceCapabilities ) ) );
89295   }
89296 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89297   template<typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const89298   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
89299   {
89300     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
89301     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( &surfaceCapabilities ) ) );
89302     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilitiesKHR" );
89303   }
89304 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89305 
89306   template<typename Dispatch>
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,Dispatch const & d) const89307   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
89308   {
89309     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( pSurfaceFormats ) ) );
89310   }
89311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89312   template<typename Allocator , typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const89313   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
89314   {
89315     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats;
89316     uint32_t surfaceFormatCount;
89317     Result result;
89318     do
89319     {
89320       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
89321       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
89322       {
89323         surfaceFormats.resize( surfaceFormatCount );
89324         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
89325       }
89326     } while ( result == Result::eIncomplete );
89327     if ( result == Result::eSuccess )
89328     {
89329       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
89330       surfaceFormats.resize( surfaceFormatCount );
89331     }
89332     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
89333   }
89334   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const89335   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
89336   {
89337     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats( vectorAllocator );
89338     uint32_t surfaceFormatCount;
89339     Result result;
89340     do
89341     {
89342       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
89343       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
89344       {
89345         surfaceFormats.resize( surfaceFormatCount );
89346         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
89347       }
89348     } while ( result == Result::eIncomplete );
89349     if ( result == Result::eSuccess )
89350     {
89351       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
89352       surfaceFormats.resize( surfaceFormatCount );
89353     }
89354     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
89355   }
89356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89357 
89358   template<typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,Dispatch const & d) const89359   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
89360   {
89361     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( pSurfaceFormats ) ) );
89362   }
89363 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89364   template<typename Allocator , typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const89365   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
89366   {
89367     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats;
89368     uint32_t surfaceFormatCount;
89369     Result result;
89370     do
89371     {
89372       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
89373       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
89374       {
89375         surfaceFormats.resize( surfaceFormatCount );
89376         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
89377       }
89378     } while ( result == Result::eIncomplete );
89379     if ( result == Result::eSuccess )
89380     {
89381       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
89382       surfaceFormats.resize( surfaceFormatCount );
89383     }
89384     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
89385   }
89386   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const89387   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
89388   {
89389     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats( vectorAllocator );
89390     uint32_t surfaceFormatCount;
89391     Result result;
89392     do
89393     {
89394       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
89395       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
89396       {
89397         surfaceFormats.resize( surfaceFormatCount );
89398         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
89399       }
89400     } while ( result == Result::eIncomplete );
89401     if ( result == Result::eSuccess )
89402     {
89403       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
89404       surfaceFormats.resize( surfaceFormatCount );
89405     }
89406     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
89407   }
89408 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89409 
89410 #ifdef VK_USE_PLATFORM_WIN32_KHR
89411   template<typename Dispatch>
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const89412   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
89413   {
89414     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
89415   }
89416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89417   template<typename Allocator , typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const89418   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
89419   {
89420     std::vector<PresentModeKHR,Allocator> presentModes;
89421     uint32_t presentModeCount;
89422     Result result;
89423     do
89424     {
89425       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
89426       if ( ( result == Result::eSuccess ) && presentModeCount )
89427       {
89428         presentModes.resize( presentModeCount );
89429         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
89430       }
89431     } while ( result == Result::eIncomplete );
89432     if ( result == Result::eSuccess )
89433     {
89434       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
89435       presentModes.resize( presentModeCount );
89436     }
89437     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
89438   }
89439   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const89440   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
89441   {
89442     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
89443     uint32_t presentModeCount;
89444     Result result;
89445     do
89446     {
89447       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
89448       if ( ( result == Result::eSuccess ) && presentModeCount )
89449       {
89450         presentModes.resize( presentModeCount );
89451         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
89452       }
89453     } while ( result == Result::eIncomplete );
89454     if ( result == Result::eSuccess )
89455     {
89456       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
89457       presentModes.resize( presentModeCount );
89458     }
89459     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
89460   }
89461 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89462 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89463 
89464   template<typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const89465   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
89466   {
89467     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
89468   }
89469 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89470   template<typename Allocator , typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const89471   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const
89472   {
89473     std::vector<PresentModeKHR,Allocator> presentModes;
89474     uint32_t presentModeCount;
89475     Result result;
89476     do
89477     {
89478       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
89479       if ( ( result == Result::eSuccess ) && presentModeCount )
89480       {
89481         presentModes.resize( presentModeCount );
89482         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
89483       }
89484     } while ( result == Result::eIncomplete );
89485     if ( result == Result::eSuccess )
89486     {
89487       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
89488       presentModes.resize( presentModeCount );
89489     }
89490     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
89491   }
89492   template<typename Allocator , 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,Allocator const & vectorAllocator,Dispatch const & d) const89493   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
89494   {
89495     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
89496     uint32_t presentModeCount;
89497     Result result;
89498     do
89499     {
89500       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
89501       if ( ( result == Result::eSuccess ) && presentModeCount )
89502       {
89503         presentModes.resize( presentModeCount );
89504         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
89505       }
89506     } while ( result == Result::eIncomplete );
89507     if ( result == Result::eSuccess )
89508     {
89509       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
89510       presentModes.resize( presentModeCount );
89511     }
89512     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
89513   }
89514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89515 
89516   template<typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::Bool32 * pSupported,Dispatch const & d) const89517   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
89518   {
89519     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( pSupported ) ) );
89520   }
89521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89522   template<typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const89523   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
89524   {
89525     VULKAN_HPP_NAMESPACE::Bool32 supported;
89526     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( &supported ) ) );
89527     return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceSupportKHR" );
89528   }
89529 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89530 
89531   template<typename Dispatch>
getToolPropertiesEXT(uint32_t * pToolCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties,Dispatch const & d) const89532   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89533   {
89534     return static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( pToolProperties ) ) );
89535   }
89536 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89537   template<typename Allocator , typename Dispatch>
getToolPropertiesEXT(Dispatch const & d) const89538   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type PhysicalDevice::getToolPropertiesEXT(Dispatch const &d ) const
89539   {
89540     std::vector<PhysicalDeviceToolPropertiesEXT,Allocator> toolProperties;
89541     uint32_t toolCount;
89542     Result result;
89543     do
89544     {
89545       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
89546       if ( ( result == Result::eSuccess ) && toolCount )
89547       {
89548         toolProperties.resize( toolCount );
89549         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( toolProperties.data() ) ) );
89550       }
89551     } while ( result == Result::eIncomplete );
89552     if ( result == Result::eSuccess )
89553     {
89554       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
89555       toolProperties.resize( toolCount );
89556     }
89557     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
89558   }
89559   template<typename Allocator , typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type>
getToolPropertiesEXT(Allocator const & vectorAllocator,Dispatch const & d) const89560   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT,Allocator>>::type PhysicalDevice::getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
89561   {
89562     std::vector<PhysicalDeviceToolPropertiesEXT,Allocator> toolProperties( vectorAllocator );
89563     uint32_t toolCount;
89564     Result result;
89565     do
89566     {
89567       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
89568       if ( ( result == Result::eSuccess ) && toolCount )
89569       {
89570         toolProperties.resize( toolCount );
89571         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( toolProperties.data() ) ) );
89572       }
89573     } while ( result == Result::eIncomplete );
89574     if ( result == Result::eSuccess )
89575     {
89576       VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
89577       toolProperties.resize( toolCount );
89578     }
89579     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
89580   }
89581 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89582 
89583 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
89584   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display * display,Dispatch const & d) const89585   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89586   {
89587     return static_cast<Bool32>( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
89588   }
89589 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89590   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display,Dispatch const & d) const89591   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
89592   {
89593     return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
89594   }
89595 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89596 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
89597 
89598 #ifdef VK_USE_PLATFORM_WIN32_KHR
89599 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
89600   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const89601   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89602   {
89603     return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
89604   }
89605 #else
89606   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const89607   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
89608   {
89609     return d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex );
89610   }
89611 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89612 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89613 
89614 #ifdef VK_USE_PLATFORM_XCB_KHR
89615   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id,Dispatch const & d) const89616   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
89617   {
89618     return static_cast<Bool32>( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
89619   }
89620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89621   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id,Dispatch const & d) const89622   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
89623   {
89624     return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
89625   }
89626 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89627 #endif /*VK_USE_PLATFORM_XCB_KHR*/
89628 
89629 #ifdef VK_USE_PLATFORM_XLIB_KHR
89630   template<typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display * dpy,VisualID visualID,Dispatch const & d) const89631   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89632   {
89633     return static_cast<Bool32>( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
89634   }
89635 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89636   template<typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID,Dispatch const & d) const89637   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
89638   {
89639     return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
89640   }
89641 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89642 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
89643 
89644 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
89645   template<typename Dispatch>
getRandROutputDisplayEXT(Display * dpy,RROutput rrOutput,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const89646   VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
89647   {
89648     return static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( pDisplay ) ) );
89649   }
89650 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89651   template<typename Dispatch>
getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput,Dispatch const & d) const89652   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d ) const
89653   {
89654     VULKAN_HPP_NAMESPACE::DisplayKHR display;
89655     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( &display ) ) );
89656     return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getRandROutputDisplayEXT" );
89657   }
89658 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89659 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
89660 
89661 
89662 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
89663   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89664   VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89665   {
89666     return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
89667   }
89668 #else
89669   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89670   VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
89671   {
89672     Result result = static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
89673     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" );
89674   }
89675 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89676 
89677 
89678 
89679   template <typename Dispatch>
getCheckpointDataNV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,Dispatch const & d) const89680   VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89681   {
89682     d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointDataNV *>( pCheckpointData ) );
89683   }
89684 
89685 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89686   template <typename CheckpointDataNVAllocator, typename Dispatch>
getCheckpointDataNV(Dispatch const & d) const89687   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( Dispatch const & d ) const
89688   {
89689     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData;
89690     uint32_t checkpointDataCount;
89691     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
89692     checkpointData.resize( checkpointDataCount );
89693     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
89694     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
89695     return checkpointData;
89696   }
89697 
89698   template <typename CheckpointDataNVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CheckpointDataNV>::value, int>::type >
getCheckpointDataNV(CheckpointDataNVAllocator & checkpointDataAllocator,Dispatch const & d) const89699   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataAllocator, Dispatch const & d ) const
89700   {
89701     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData( checkpointDataAllocator );
89702     uint32_t checkpointDataCount;
89703     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
89704     checkpointData.resize( checkpointDataCount );
89705     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
89706     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
89707     return checkpointData;
89708   }
89709 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89710 
89711 
89712   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const89713   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89714   {
89715     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
89716   }
89717 
89718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89719   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const89720   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89721   {
89722     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
89723   }
89724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89725 
89726 
89727   template <typename Dispatch>
bindSparse(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const89728   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
89729   {
89730     return static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast<const VkBindSparseInfo *>( pBindInfo ), static_cast<VkFence>( fence ) ) );
89731   }
89732 
89733 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89734   template <typename Dispatch>
bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const89735   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
89736   {
89737     Result result = static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
89738     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
89739   }
89740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89741 
89742 
89743   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const89744   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89745   {
89746     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
89747   }
89748 
89749 
89750   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const89751   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89752   {
89753     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
89754   }
89755 
89756 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89757   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const89758   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89759   {
89760     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
89761   }
89762 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89763 
89764 
89765   template <typename Dispatch>
presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo,Dispatch const & d) const89766   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89767   {
89768     return static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( pPresentInfo ) ) );
89769   }
89770 
89771 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89772   template <typename Dispatch>
presentKHR(const PresentInfoKHR & presentInfo,Dispatch const & d) const89773   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d ) const
89774   {
89775     Result result = static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
89776     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
89777   }
89778 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89779 
89780 
89781 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
89782   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const89783   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89784   {
89785     return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
89786   }
89787 #else
89788   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const89789   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
89790   {
89791     Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
89792     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
89793   }
89794 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89795 
89796 
89797 
89798   template <typename Dispatch>
submit(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const89799   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
89800   {
89801     return static_cast<Result>( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo *>( pSubmits ), static_cast<VkFence>( fence ) ) );
89802   }
89803 
89804 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89805   template <typename Dispatch>
submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const89806   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
89807   {
89808     Result result = static_cast<Result>( d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) );
89809     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
89810   }
89811 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89812 
89813 
89814 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
89815   template <typename Dispatch>
waitIdle(Dispatch const & d) const89816   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89817   {
89818     return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
89819   }
89820 #else
89821   template <typename Dispatch>
waitIdle(Dispatch const & d) const89822   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::waitIdle( Dispatch const & d ) const
89823   {
89824     Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
89825     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
89826   }
89827 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89828 
89829 #ifdef VK_USE_PLATFORM_ANDROID_KHR
89830   template <> struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>{ enum { value = true }; };
89831 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
89832 #ifdef VK_USE_PLATFORM_ANDROID_KHR
89833   template <> struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>{ enum { value = true }; };
89834 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
89835   template <> struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>{ enum { value = true }; };
89836   template <> struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>{ enum { value = true }; };
89837   template <> struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>{ enum { value = true }; };
89838   template <> struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>{ enum { value = true }; };
89839   template <> struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>{ enum { value = true }; };
89840   template <> struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>{ enum { value = true }; };
89841   template <> struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>{ enum { value = true }; };
89842   template <> struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>{ enum { value = true }; };
89843   template <> struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>{ enum { value = true }; };
89844   template <> struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>{ enum { value = true }; };
89845 #ifdef VK_USE_PLATFORM_WIN32_KHR
89846   template <> struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
89847 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89848   template <> struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
89849   template <> struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
89850   template <> struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>{ enum { value = true }; };
89851   template <> struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
89852   template <> struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
89853 #ifdef VK_ENABLE_BETA_EXTENSIONS
89854   template <> struct StructExtends<DeferredOperationInfoKHR, RayTracingPipelineCreateInfoKHR>{ enum { value = true }; };
89855   template <> struct StructExtends<DeferredOperationInfoKHR, AccelerationStructureBuildGeometryInfoKHR>{ enum { value = true }; };
89856   template <> struct StructExtends<DeferredOperationInfoKHR, CopyAccelerationStructureInfoKHR>{ enum { value = true }; };
89857   template <> struct StructExtends<DeferredOperationInfoKHR, CopyMemoryToAccelerationStructureInfoKHR>{ enum { value = true }; };
89858   template <> struct StructExtends<DeferredOperationInfoKHR, CopyAccelerationStructureToMemoryInfoKHR>{ enum { value = true }; };
89859 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
89860   template <> struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfoEXT, DescriptorPoolCreateInfo>{ enum { value = true }; };
89861   template <> struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>{ enum { value = true }; };
89862   template <> struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>{ enum { value = true }; };
89863   template <> struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>{ enum { value = true }; };
89864   template <> struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
89865   template <> struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>{ enum { value = true }; };
89866   template <> struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>{ enum { value = true }; };
89867   template <> struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>{ enum { value = true }; };
89868   template <> struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>{ enum { value = true }; };
89869   template <> struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
89870   template <> struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
89871   template <> struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>{ enum { value = true }; };
89872   template <> struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>{ enum { value = true }; };
89873   template <> struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>{ enum { value = true }; };
89874   template <> struct StructExtends<DevicePrivateDataCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
89875   template <> struct StructExtends<DeviceQueueGlobalPriorityCreateInfoEXT, DeviceQueueCreateInfo>{ enum { value = true }; };
89876   template <> struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>{ enum { value = true }; };
89877   template <> struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
89878   template <> struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>{ enum { value = true }; };
89879   template <> struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>{ enum { value = true }; };
89880 #ifdef VK_USE_PLATFORM_WIN32_KHR
89881   template <> struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>{ enum { value = true }; };
89882 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89883   template <> struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
89884   template <> struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
89885 #ifdef VK_USE_PLATFORM_WIN32_KHR
89886   template <> struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
89887 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89888 #ifdef VK_USE_PLATFORM_WIN32_KHR
89889   template <> struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
89890 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89891   template <> struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
89892 #ifdef VK_USE_PLATFORM_WIN32_KHR
89893   template <> struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>{ enum { value = true }; };
89894 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89895 #ifdef VK_USE_PLATFORM_ANDROID_KHR
89896   template <> struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>{ enum { value = true }; };
89897   template <> struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>{ enum { value = true }; };
89898 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
89899   template <> struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
89900   template <> struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>{ enum { value = true }; };
89901   template <> struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
89902   template <> struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
89903   template <> struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>{ enum { value = true }; };
89904   template <> struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>{ enum { value = true }; };
89905   template <> struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
89906   template <> struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
89907   template <> struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
89908   template <> struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>{ enum { value = true }; };
89909   template <> struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>{ enum { value = true }; };
89910   template <> struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
89911   template <> struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>{ enum { value = true }; };
89912   template <> struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
89913   template <> struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
89914   template <> struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>{ enum { value = true }; };
89915   template <> struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>{ enum { value = true }; };
89916   template <> struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>{ enum { value = true }; };
89917 #ifdef VK_USE_PLATFORM_ANDROID_KHR
89918   template <> struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>{ enum { value = true }; };
89919 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
89920   template <> struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
89921   template <> struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
89922 #ifdef VK_USE_PLATFORM_WIN32_KHR
89923   template <> struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
89924 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89925 #ifdef VK_USE_PLATFORM_WIN32_KHR
89926   template <> struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
89927 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
89928   template <> struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>{ enum { value = true }; };
89929   template <> struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
89930   template <> struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>{ enum { value = true }; };
89931   template <> struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
89932   template <> struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
89933   template <> struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
89934   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
89935   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
89936   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89937   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89938   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
89939   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
89940   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89941   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89942   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89943   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89944   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
89945   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
89946   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>{ enum { value = true }; };
89947   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89948   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89949   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>{ enum { value = true }; };
89950   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>{ enum { value = true }; };
89951   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89952   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89953   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89954   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89955   template <> struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
89956   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89957   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89958   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
89959   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89960   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89961   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89962   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89963   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89964   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89965   template <> struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
89966   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89967   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89968   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89969   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89970   template <> struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
89971   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
89972   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>{ enum { value = true }; };
89973   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
89974   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89975   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89976   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
89977   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89978   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89979   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89980   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89981   template <> struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
89982   template <> struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
89983   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89984   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89985   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89986   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89987   template <> struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
89988   template <> struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
89989   template <> struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>{ enum { value = true }; };
89990   template <> struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
89991   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89992   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89993   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
89994   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
89995   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
89996   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
89997   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
89998   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
89999   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90000   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90001   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90002   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>{ enum { value = true }; };
90003   template <> struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
90004   template <> struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
90005   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90006   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90007   template <> struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
90008   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90009   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>{ enum { value = true }; };
90010   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90011   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90012   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90013   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90014   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90015   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90016   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90017   template <> struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90018   template <> struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
90019   template <> struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>{ enum { value = true }; };
90020   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90021   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90022   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
90023   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
90024   template <> struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
90025   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90026   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>{ enum { value = true }; };
90027   template <> struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>{ enum { value = true }; };
90028   template <> struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
90029   template <> struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90030   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
90031   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
90032   template <> struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
90033   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90034   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90035   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
90036   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
90037   template <> struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
90038 #ifdef VK_ENABLE_BETA_EXTENSIONS
90039   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
90040   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
90041 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90042 #ifdef VK_ENABLE_BETA_EXTENSIONS
90043   template <> struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
90044 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90045   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90046   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90047   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90048   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>{ enum { value = true }; };
90049   template <> struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
90050   template <> struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
90051 #ifdef VK_ENABLE_BETA_EXTENSIONS
90052   template <> struct StructExtends<PhysicalDeviceRayTracingFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
90053   template <> struct StructExtends<PhysicalDeviceRayTracingFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
90054 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90055 #ifdef VK_ENABLE_BETA_EXTENSIONS
90056   template <> struct StructExtends<PhysicalDeviceRayTracingPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
90057 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90058   template <> struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
90059   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
90060   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
90061   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90062   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90063   template <> struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90064   template <> struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90065   template <> struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
90066   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90067   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>{ enum { value = true }; };
90068   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90069   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
90070   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90071   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>{ enum { value = true }; };
90072   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90073   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90074   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
90075   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>{ enum { value = true }; };
90076   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
90077   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
90078   template <> struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>{ enum { value = true }; };
90079   template <> struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>{ enum { value = true }; };
90080   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90081   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90082   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90083   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>{ enum { value = true }; };
90084   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
90085   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>{ enum { value = true }; };
90086   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90087   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90088   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
90089   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
90090   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>{ enum { value = true }; };
90091   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>{ enum { value = true }; };
90092   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
90093   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
90094   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
90095   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90096   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>{ enum { value = true }; };
90097   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
90098   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
90099   template <> struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
90100   template <> struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
90101   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90102   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90103   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90104   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90105   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90106   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90107   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90108   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90109   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90110   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>{ enum { value = true }; };
90111   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
90112   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90113   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90114   template <> struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90115   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90116   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
90117   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90118   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>{ enum { value = true }; };
90119   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90120   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90121   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
90122   template <> struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
90123   template <> struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>{ enum { value = true }; };
90124   template <> struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
90125   template <> struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
90126   template <> struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>{ enum { value = true }; };
90127   template <> struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
90128   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
90129   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>{ enum { value = true }; };
90130   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
90131   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
90132   template <> struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>{ enum { value = true }; };
90133   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>{ enum { value = true }; };
90134   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>{ enum { value = true }; };
90135   template <> struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
90136   template <> struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
90137   template <> struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
90138   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
90139   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, ComputePipelineCreateInfo>{ enum { value = true }; };
90140   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoNV>{ enum { value = true }; };
90141 #ifdef VK_ENABLE_BETA_EXTENSIONS
90142   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoKHR>{ enum { value = true }; };
90143 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90144   template <> struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
90145   template <> struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
90146   template <> struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
90147   template <> struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
90148   template <> struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
90149   template <> struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
90150   template <> struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
90151   template <> struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
90152   template <> struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, PipelineShaderStageCreateInfo>{ enum { value = true }; };
90153   template <> struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>{ enum { value = true }; };
90154   template <> struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>{ enum { value = true }; };
90155   template <> struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
90156   template <> struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
90157   template <> struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
90158   template <> struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
90159   template <> struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
90160 #ifdef VK_USE_PLATFORM_GGP
90161   template <> struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>{ enum { value = true }; };
90162 #endif /*VK_USE_PLATFORM_GGP*/
90163   template <> struct StructExtends<PresentRegionsKHR, PresentInfoKHR>{ enum { value = true }; };
90164   template <> struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>{ enum { value = true }; };
90165   template <> struct StructExtends<ProtectedSubmitInfo, SubmitInfo>{ enum { value = true }; };
90166   template <> struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>{ enum { value = true }; };
90167   template <> struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>{ enum { value = true }; };
90168   template <> struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>{ enum { value = true }; };
90169   template <> struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
90170   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>{ enum { value = true }; };
90171   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>{ enum { value = true }; };
90172   template <> struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
90173   template <> struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
90174   template <> struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>{ enum { value = true }; };
90175   template <> struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>{ enum { value = true }; };
90176   template <> struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>{ enum { value = true }; };
90177   template <> struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>{ enum { value = true }; };
90178   template <> struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>{ enum { value = true }; };
90179   template <> struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
90180   template <> struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>{ enum { value = true }; };
90181   template <> struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>{ enum { value = true }; };
90182   template <> struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
90183   template <> struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>{ enum { value = true }; };
90184   template <> struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>{ enum { value = true }; };
90185   template <> struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
90186   template <> struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>{ enum { value = true }; };
90187 #ifdef VK_USE_PLATFORM_WIN32_KHR
90188   template <> struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>{ enum { value = true }; };
90189 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90190 #ifdef VK_USE_PLATFORM_WIN32_KHR
90191   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
90192   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
90193 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90194 #ifdef VK_USE_PLATFORM_WIN32_KHR
90195   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
90196   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
90197 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90198   template <> struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
90199   template <> struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
90200   template <> struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>{ enum { value = true }; };
90201   template <> struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>{ enum { value = true }; };
90202   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>{ enum { value = true }; };
90203   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>{ enum { value = true }; };
90204   template <> struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>{ enum { value = true }; };
90205   template <> struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>{ enum { value = true }; };
90206 #ifdef VK_USE_PLATFORM_WIN32_KHR
90207   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>{ enum { value = true }; };
90208 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90209 #ifdef VK_USE_PLATFORM_WIN32_KHR
90210   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>{ enum { value = true }; };
90211 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90212   template <> struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>{ enum { value = true }; };
90213   template <> struct StructExtends<WriteDescriptorSetInlineUniformBlockEXT, WriteDescriptorSet>{ enum { value = true }; };
90214 
90215 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
90216   class DynamicLoader
90217   {
90218   public:
90219 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
DynamicLoader(std::string const & vulkanLibraryName={} )90220     DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT : m_success( false )
90221 #  else
90222     DynamicLoader( std::string const & vulkanLibraryName = {} ) : m_success( false )
90223 #  endif
90224     {
90225       if ( !vulkanLibraryName.empty() )
90226       {
90227 #  if defined( __linux__ ) || defined( __APPLE__ )
90228         m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
90229 #  elif defined( _WIN32 )
90230         m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
90231 #  else
90232 #    error unsupported platform
90233 #  endif
90234       }
90235       else
90236       {
90237 #  if defined( __linux__ )
90238         m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
90239         if ( m_library == nullptr )
90240         {
90241           m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
90242         }
90243 #  elif defined( __APPLE__ )
90244         m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
90245 #  elif defined( _WIN32 )
90246         m_library = ::LoadLibraryA( "vulkan-1.dll" );
90247 #  else
90248 #    error unsupported platform
90249 #  endif
90250       }
90251 
90252       m_success = (m_library != nullptr);
90253 #ifndef VULKAN_HPP_NO_EXCEPTIONS
90254       if ( !m_success )
90255       {
90256         // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
90257         throw std::runtime_error( "Failed to load vulkan library!" );
90258       }
90259 #endif
90260     }
90261 
90262     DynamicLoader( DynamicLoader const& ) = delete;
90263 
DynamicLoader(DynamicLoader && other)90264     DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
90265       : m_success(other.m_success)
90266       , m_library(other.m_library)
90267     {
90268       other.m_library = nullptr;
90269     }
90270 
90271     DynamicLoader &operator=( DynamicLoader const& ) = delete;
90272 
operator =(DynamicLoader && other)90273     DynamicLoader &operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
90274     {
90275       m_success = other.m_success;
90276       std::swap(m_library, other.m_library);
90277       return *this;
90278     }
90279 
~DynamicLoader()90280     ~DynamicLoader() VULKAN_HPP_NOEXCEPT
90281     {
90282       if ( m_library )
90283       {
90284 #  if defined( __linux__ ) || defined( __APPLE__ )
90285         dlclose( m_library );
90286 #  elif defined( _WIN32 )
90287         ::FreeLibrary( m_library );
90288 #  else
90289 #    error unsupported platform
90290 #  endif
90291       }
90292     }
90293 
90294     template <typename T>
getProcAddress(const char * function) const90295     T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT
90296     {
90297 #  if defined( __linux__ ) || defined( __APPLE__ )
90298       return (T)dlsym( m_library, function );
90299 #  elif defined( _WIN32 )
90300       return (T)::GetProcAddress( m_library, function );
90301 #  else
90302 #    error unsupported platform
90303 #  endif
90304     }
90305 
success() const90306     bool success() const VULKAN_HPP_NOEXCEPT { return m_success; }
90307 
90308   private:
90309     bool m_success;
90310 #  if defined( __linux__ ) || defined( __APPLE__ )
90311     void * m_library;
90312 #  elif defined( _WIN32 )
90313     ::HINSTANCE m_library;
90314 #  else
90315 #    error unsupported platform
90316 #  endif
90317   };
90318 #endif
90319 
90320 
90321   class DispatchLoaderDynamic
90322   {
90323   public:
90324 #ifdef VK_USE_PLATFORM_WIN32_KHR
90325     PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
90326 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90327     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
90328     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
90329     PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
90330     PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
90331 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
90332     PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
90333 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
90334     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
90335     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
90336     PFN_vkAllocateMemory vkAllocateMemory = 0;
90337     PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
90338     PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
90339 #ifdef VK_ENABLE_BETA_EXTENSIONS
90340     PFN_vkBindAccelerationStructureMemoryKHR vkBindAccelerationStructureMemoryKHR = 0;
90341 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90342     PFN_vkBindBufferMemory vkBindBufferMemory = 0;
90343     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
90344     PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
90345     PFN_vkBindImageMemory vkBindImageMemory = 0;
90346     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
90347     PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
90348 #ifdef VK_ENABLE_BETA_EXTENSIONS
90349     PFN_vkBuildAccelerationStructureKHR vkBuildAccelerationStructureKHR = 0;
90350 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90351     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
90352     PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
90353     PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
90354     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
90355     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
90356     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
90357     PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
90358     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
90359     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
90360     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
90361     PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
90362     PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
90363     PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
90364     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
90365     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
90366     PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
90367     PFN_vkCmdBlitImage vkCmdBlitImage = 0;
90368     PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
90369 #ifdef VK_ENABLE_BETA_EXTENSIONS
90370     PFN_vkCmdBuildAccelerationStructureIndirectKHR vkCmdBuildAccelerationStructureIndirectKHR = 0;
90371 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90372 #ifdef VK_ENABLE_BETA_EXTENSIONS
90373     PFN_vkCmdBuildAccelerationStructureKHR vkCmdBuildAccelerationStructureKHR = 0;
90374 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90375     PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
90376     PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
90377     PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
90378     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
90379 #ifdef VK_ENABLE_BETA_EXTENSIONS
90380     PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
90381 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90382     PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
90383 #ifdef VK_ENABLE_BETA_EXTENSIONS
90384     PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
90385 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90386     PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
90387     PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
90388     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
90389     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
90390     PFN_vkCmdCopyImage vkCmdCopyImage = 0;
90391     PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
90392     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
90393     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
90394 #ifdef VK_ENABLE_BETA_EXTENSIONS
90395     PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
90396 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90397     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
90398     PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
90399     PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
90400     PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
90401     PFN_vkCmdDispatch vkCmdDispatch = 0;
90402     PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
90403     PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
90404     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
90405     PFN_vkCmdDraw vkCmdDraw = 0;
90406     PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
90407     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
90408     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
90409     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
90410     PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
90411     PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
90412     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
90413     PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
90414     PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
90415     PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
90416     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
90417     PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
90418     PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
90419     PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
90420     PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
90421     PFN_vkCmdEndQuery vkCmdEndQuery = 0;
90422     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
90423     PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
90424     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
90425     PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
90426     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
90427     PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
90428     PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
90429     PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
90430     PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
90431     PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
90432     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
90433     PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
90434     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
90435     PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
90436     PFN_vkCmdPushConstants vkCmdPushConstants = 0;
90437     PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
90438     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
90439     PFN_vkCmdResetEvent vkCmdResetEvent = 0;
90440     PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
90441     PFN_vkCmdResolveImage vkCmdResolveImage = 0;
90442     PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
90443     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
90444     PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
90445     PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
90446     PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
90447     PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
90448     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
90449     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
90450     PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
90451     PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
90452     PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
90453     PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
90454     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
90455     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
90456     PFN_vkCmdSetEvent vkCmdSetEvent = 0;
90457     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
90458     PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
90459     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
90460     PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
90461     PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
90462     PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
90463     PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
90464     PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
90465     PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
90466     PFN_vkCmdSetScissor vkCmdSetScissor = 0;
90467     PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
90468     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
90469     PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
90470     PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
90471     PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
90472     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
90473     PFN_vkCmdSetViewport vkCmdSetViewport = 0;
90474     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
90475     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
90476     PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
90477 #ifdef VK_ENABLE_BETA_EXTENSIONS
90478     PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
90479 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90480 #ifdef VK_ENABLE_BETA_EXTENSIONS
90481     PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
90482 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90483     PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
90484     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
90485     PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
90486     PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
90487 #ifdef VK_ENABLE_BETA_EXTENSIONS
90488     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
90489 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90490     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
90491     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
90492     PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
90493 #ifdef VK_ENABLE_BETA_EXTENSIONS
90494     PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
90495 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90496 #ifdef VK_ENABLE_BETA_EXTENSIONS
90497     PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
90498 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90499 #ifdef VK_ENABLE_BETA_EXTENSIONS
90500     PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
90501 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90502 #ifdef VK_ENABLE_BETA_EXTENSIONS
90503     PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
90504 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90505     PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
90506 #ifdef VK_USE_PLATFORM_ANDROID_KHR
90507     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
90508 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
90509     PFN_vkCreateBuffer vkCreateBuffer = 0;
90510     PFN_vkCreateBufferView vkCreateBufferView = 0;
90511     PFN_vkCreateCommandPool vkCreateCommandPool = 0;
90512     PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
90513     PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
90514     PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
90515 #ifdef VK_ENABLE_BETA_EXTENSIONS
90516     PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
90517 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90518     PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
90519     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
90520     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
90521     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
90522     PFN_vkCreateDevice vkCreateDevice = 0;
90523 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
90524     PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
90525 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
90526     PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
90527     PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
90528     PFN_vkCreateEvent vkCreateEvent = 0;
90529     PFN_vkCreateFence vkCreateFence = 0;
90530     PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
90531     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
90532     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
90533 #ifdef VK_USE_PLATFORM_IOS_MVK
90534     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
90535 #endif /*VK_USE_PLATFORM_IOS_MVK*/
90536     PFN_vkCreateImage vkCreateImage = 0;
90537 #ifdef VK_USE_PLATFORM_FUCHSIA
90538     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
90539 #endif /*VK_USE_PLATFORM_FUCHSIA*/
90540     PFN_vkCreateImageView vkCreateImageView = 0;
90541     PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
90542     PFN_vkCreateInstance vkCreateInstance = 0;
90543 #ifdef VK_USE_PLATFORM_MACOS_MVK
90544     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
90545 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
90546 #ifdef VK_USE_PLATFORM_METAL_EXT
90547     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
90548 #endif /*VK_USE_PLATFORM_METAL_EXT*/
90549     PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
90550     PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
90551     PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
90552     PFN_vkCreateQueryPool vkCreateQueryPool = 0;
90553 #ifdef VK_ENABLE_BETA_EXTENSIONS
90554     PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
90555 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90556     PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
90557     PFN_vkCreateRenderPass vkCreateRenderPass = 0;
90558     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
90559     PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
90560     PFN_vkCreateSampler vkCreateSampler = 0;
90561     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
90562     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
90563     PFN_vkCreateSemaphore vkCreateSemaphore = 0;
90564     PFN_vkCreateShaderModule vkCreateShaderModule = 0;
90565     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
90566 #ifdef VK_USE_PLATFORM_GGP
90567     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
90568 #endif /*VK_USE_PLATFORM_GGP*/
90569     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
90570     PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
90571 #ifdef VK_USE_PLATFORM_VI_NN
90572     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
90573 #endif /*VK_USE_PLATFORM_VI_NN*/
90574 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
90575     PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
90576 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
90577 #ifdef VK_USE_PLATFORM_WIN32_KHR
90578     PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
90579 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90580 #ifdef VK_USE_PLATFORM_XCB_KHR
90581     PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
90582 #endif /*VK_USE_PLATFORM_XCB_KHR*/
90583 #ifdef VK_USE_PLATFORM_XLIB_KHR
90584     PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
90585 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
90586     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
90587     PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
90588     PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
90589 #ifdef VK_ENABLE_BETA_EXTENSIONS
90590     PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
90591 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90592     PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
90593 #ifdef VK_ENABLE_BETA_EXTENSIONS
90594     PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
90595 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90596     PFN_vkDestroyBuffer vkDestroyBuffer = 0;
90597     PFN_vkDestroyBufferView vkDestroyBufferView = 0;
90598     PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
90599     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
90600     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
90601 #ifdef VK_ENABLE_BETA_EXTENSIONS
90602     PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
90603 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90604     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
90605     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
90606     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
90607     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
90608     PFN_vkDestroyDevice vkDestroyDevice = 0;
90609     PFN_vkDestroyEvent vkDestroyEvent = 0;
90610     PFN_vkDestroyFence vkDestroyFence = 0;
90611     PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
90612     PFN_vkDestroyImage vkDestroyImage = 0;
90613     PFN_vkDestroyImageView vkDestroyImageView = 0;
90614     PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
90615     PFN_vkDestroyInstance vkDestroyInstance = 0;
90616     PFN_vkDestroyPipeline vkDestroyPipeline = 0;
90617     PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
90618     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
90619     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
90620     PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
90621     PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
90622     PFN_vkDestroySampler vkDestroySampler = 0;
90623     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
90624     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
90625     PFN_vkDestroySemaphore vkDestroySemaphore = 0;
90626     PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
90627     PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
90628     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
90629     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
90630     PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
90631     PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
90632     PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
90633     PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
90634     PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
90635     PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
90636     PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
90637     PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
90638     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
90639     PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
90640     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
90641     PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
90642     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
90643     PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
90644     PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
90645     PFN_vkFreeMemory vkFreeMemory = 0;
90646 #ifdef VK_ENABLE_BETA_EXTENSIONS
90647     PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
90648 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90649     PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
90650 #ifdef VK_ENABLE_BETA_EXTENSIONS
90651     PFN_vkGetAccelerationStructureMemoryRequirementsKHR vkGetAccelerationStructureMemoryRequirementsKHR = 0;
90652 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90653     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
90654 #ifdef VK_USE_PLATFORM_ANDROID_KHR
90655     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
90656 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
90657     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
90658     PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
90659     PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
90660     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
90661     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
90662     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
90663     PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
90664     PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
90665     PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
90666 #ifdef VK_ENABLE_BETA_EXTENSIONS
90667     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
90668 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90669 #ifdef VK_ENABLE_BETA_EXTENSIONS
90670     PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
90671 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90672     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
90673     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
90674 #ifdef VK_ENABLE_BETA_EXTENSIONS
90675     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
90676 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90677     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
90678     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
90679     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
90680 #ifdef VK_USE_PLATFORM_WIN32_KHR
90681     PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
90682 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90683     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
90684     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
90685     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
90686     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
90687     PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
90688     PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
90689     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
90690     PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
90691     PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
90692     PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
90693     PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
90694     PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
90695     PFN_vkGetEventStatus vkGetEventStatus = 0;
90696     PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
90697     PFN_vkGetFenceStatus vkGetFenceStatus = 0;
90698 #ifdef VK_USE_PLATFORM_WIN32_KHR
90699     PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
90700 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90701     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
90702     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
90703     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
90704     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
90705     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
90706     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
90707     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
90708     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
90709     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
90710     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
90711     PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
90712     PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
90713 #ifdef VK_USE_PLATFORM_ANDROID_KHR
90714     PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
90715 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
90716     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
90717     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
90718     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
90719 #ifdef VK_USE_PLATFORM_WIN32_KHR
90720     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
90721 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90722 #ifdef VK_USE_PLATFORM_WIN32_KHR
90723     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
90724 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90725 #ifdef VK_USE_PLATFORM_WIN32_KHR
90726     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
90727 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90728     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
90729     PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
90730     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
90731     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
90732 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
90733     PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
90734 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
90735     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
90736     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
90737     PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
90738     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
90739     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
90740     PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
90741     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
90742     PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
90743     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
90744     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
90745     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
90746     PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
90747     PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
90748     PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
90749     PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
90750     PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
90751     PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
90752     PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
90753     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
90754     PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
90755     PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
90756     PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
90757     PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
90758     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
90759     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
90760     PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
90761     PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
90762     PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
90763     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
90764     PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
90765     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
90766     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
90767     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
90768     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
90769     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
90770     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
90771     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
90772     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
90773     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
90774     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
90775     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
90776 #ifdef VK_USE_PLATFORM_WIN32_KHR
90777     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
90778 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90779     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
90780     PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
90781     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
90782 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
90783     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
90784 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
90785 #ifdef VK_USE_PLATFORM_WIN32_KHR
90786     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
90787 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90788 #ifdef VK_USE_PLATFORM_XCB_KHR
90789     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
90790 #endif /*VK_USE_PLATFORM_XCB_KHR*/
90791 #ifdef VK_USE_PLATFORM_XLIB_KHR
90792     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
90793 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
90794     PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
90795     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
90796     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
90797     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
90798     PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
90799     PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
90800     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
90801 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
90802     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
90803 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
90804 #ifdef VK_ENABLE_BETA_EXTENSIONS
90805     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
90806 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90807     PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
90808 #ifdef VK_ENABLE_BETA_EXTENSIONS
90809     PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
90810 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90811     PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
90812     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
90813     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
90814     PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
90815     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
90816 #ifdef VK_USE_PLATFORM_WIN32_KHR
90817     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
90818 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90819     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
90820     PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
90821     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
90822     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
90823     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
90824     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
90825 #ifdef VK_USE_PLATFORM_WIN32_KHR
90826     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
90827 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90828     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
90829 #ifdef VK_USE_PLATFORM_WIN32_KHR
90830     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
90831 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90832     PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
90833     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
90834     PFN_vkMapMemory vkMapMemory = 0;
90835     PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
90836     PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
90837     PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
90838     PFN_vkQueueBindSparse vkQueueBindSparse = 0;
90839     PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
90840     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
90841     PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
90842     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
90843     PFN_vkQueueSubmit vkQueueSubmit = 0;
90844     PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
90845     PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
90846     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
90847     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
90848 #ifdef VK_USE_PLATFORM_WIN32_KHR
90849     PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
90850 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90851     PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
90852     PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
90853     PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
90854     PFN_vkResetCommandPool vkResetCommandPool = 0;
90855     PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
90856     PFN_vkResetEvent vkResetEvent = 0;
90857     PFN_vkResetFences vkResetFences = 0;
90858     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
90859     PFN_vkResetQueryPool vkResetQueryPool = 0;
90860     PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
90861     PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
90862     PFN_vkSetEvent vkSetEvent = 0;
90863     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
90864     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
90865     PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
90866     PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
90867     PFN_vkSignalSemaphore vkSignalSemaphore = 0;
90868     PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
90869     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
90870     PFN_vkTrimCommandPool vkTrimCommandPool = 0;
90871     PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
90872     PFN_vkUnmapMemory vkUnmapMemory = 0;
90873     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
90874     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
90875     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
90876     PFN_vkWaitForFences vkWaitForFences = 0;
90877     PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
90878     PFN_vkWaitSemaphores vkWaitSemaphores = 0;
90879 #ifdef VK_ENABLE_BETA_EXTENSIONS
90880     PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
90881 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
90882 
90883   public:
90884     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
90885 
90886 #if !defined(VK_NO_PROTOTYPES)
90887     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
90888     template <typename DynamicLoader>
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device,DynamicLoader const & dl)90889     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device, DynamicLoader const& dl) VULKAN_HPP_NOEXCEPT
90890     {
90891       PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
90892       PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>("vkGetDeviceProcAddr");
90893       init(static_cast<VkInstance>(instance), getInstanceProcAddr, static_cast<VkDevice>(device), device ? getDeviceProcAddr : nullptr);
90894     }
90895 
90896     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
90897     template <typename DynamicLoader
90898 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
90899       = VULKAN_HPP_NAMESPACE::DynamicLoader
90900 #endif
90901     >
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device)90902     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT
90903     {
90904       static DynamicLoader dl;
90905       init(instance, device, dl);
90906     }
90907 #endif // !defined(VK_NO_PROTOTYPES)
90908 
DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr)90909     DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT
90910     {
90911       init(getInstanceProcAddr);
90912     }
90913 
init(PFN_vkGetInstanceProcAddr getInstanceProcAddr)90914     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
90915     {
90916       VULKAN_HPP_ASSERT(getInstanceProcAddr);
90917 
90918       vkGetInstanceProcAddr = getInstanceProcAddr;
90919       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
90920       vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
90921       vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
90922       vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
90923     }
90924 
90925     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)90926     DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
90927     {
90928       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
90929     }
90930 
90931     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr=nullptr)90932     void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
90933     {
90934       VULKAN_HPP_ASSERT(instance && getInstanceProcAddr);
90935       vkGetInstanceProcAddr = getInstanceProcAddr;
90936       init( VULKAN_HPP_NAMESPACE::Instance(instance) );
90937       if (device) {
90938         init( VULKAN_HPP_NAMESPACE::Device(device) );
90939       }
90940     }
90941 
init(VULKAN_HPP_NAMESPACE::Instance instanceCpp)90942     void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
90943     {
90944       VkInstance instance = static_cast<VkInstance>(instanceCpp);
90945 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
90946       vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
90947 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
90948 #ifdef VK_USE_PLATFORM_ANDROID_KHR
90949       vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
90950 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
90951       vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
90952       vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
90953       vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
90954 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
90955       vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
90956 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
90957       vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
90958       vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
90959       vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
90960 #ifdef VK_USE_PLATFORM_IOS_MVK
90961       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
90962 #endif /*VK_USE_PLATFORM_IOS_MVK*/
90963 #ifdef VK_USE_PLATFORM_FUCHSIA
90964       vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
90965 #endif /*VK_USE_PLATFORM_FUCHSIA*/
90966 #ifdef VK_USE_PLATFORM_MACOS_MVK
90967       vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
90968 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
90969 #ifdef VK_USE_PLATFORM_METAL_EXT
90970       vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
90971 #endif /*VK_USE_PLATFORM_METAL_EXT*/
90972 #ifdef VK_USE_PLATFORM_GGP
90973       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
90974 #endif /*VK_USE_PLATFORM_GGP*/
90975 #ifdef VK_USE_PLATFORM_VI_NN
90976       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
90977 #endif /*VK_USE_PLATFORM_VI_NN*/
90978 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
90979       vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
90980 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
90981 #ifdef VK_USE_PLATFORM_WIN32_KHR
90982       vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
90983 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
90984 #ifdef VK_USE_PLATFORM_XCB_KHR
90985       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
90986 #endif /*VK_USE_PLATFORM_XCB_KHR*/
90987 #ifdef VK_USE_PLATFORM_XLIB_KHR
90988       vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
90989 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
90990       vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
90991       vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
90992       vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
90993       vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
90994       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
90995       vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
90996       vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
90997       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
90998       vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
90999       if ( !vkEnumeratePhysicalDeviceGroups ) vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
91000       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
91001       vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
91002       vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
91003       vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
91004       vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
91005       vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
91006       vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
91007       vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
91008       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
91009       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
91010 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
91011       vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
91012 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
91013       vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
91014       vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
91015       vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
91016       vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
91017       vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
91018       vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
91019       if ( !vkGetPhysicalDeviceExternalBufferProperties ) vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
91020       vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
91021       vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
91022       if ( !vkGetPhysicalDeviceExternalFenceProperties ) vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
91023       vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
91024       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
91025       vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
91026       if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
91027       vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
91028       vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
91029       vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
91030       if ( !vkGetPhysicalDeviceFeatures2 ) vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
91031       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
91032       vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
91033       vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
91034       if ( !vkGetPhysicalDeviceFormatProperties2 ) vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
91035       vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
91036       vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
91037       vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
91038       if ( !vkGetPhysicalDeviceImageFormatProperties2 ) vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
91039       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
91040       vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
91041       vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
91042       if ( !vkGetPhysicalDeviceMemoryProperties2 ) vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
91043       vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
91044       vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
91045       vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
91046       vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
91047       vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
91048       if ( !vkGetPhysicalDeviceProperties2 ) vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
91049       vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
91050       vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
91051       vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
91052       vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
91053       if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
91054       vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
91055       vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
91056       vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
91057       if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
91058       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
91059       vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
91060       vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
91061       vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
91062       vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
91063       vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
91064 #ifdef VK_USE_PLATFORM_WIN32_KHR
91065       vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
91066 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91067       vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
91068       vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
91069       vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
91070 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
91071       vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
91072 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
91073 #ifdef VK_USE_PLATFORM_WIN32_KHR
91074       vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
91075 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91076 #ifdef VK_USE_PLATFORM_XCB_KHR
91077       vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
91078 #endif /*VK_USE_PLATFORM_XCB_KHR*/
91079 #ifdef VK_USE_PLATFORM_XLIB_KHR
91080       vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
91081 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
91082 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
91083       vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
91084 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
91085       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
91086       vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
91087 #ifdef VK_USE_PLATFORM_WIN32_KHR
91088       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
91089 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91090       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
91091       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
91092       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
91093       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
91094       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
91095       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
91096       vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
91097       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
91098       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
91099 #ifdef VK_ENABLE_BETA_EXTENSIONS
91100       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryKHR" ) );
91101       if ( !vkBindAccelerationStructureMemoryKHR ) vkBindAccelerationStructureMemoryKHR = vkBindAccelerationStructureMemoryNV;
91102 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91103       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
91104       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
91105       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
91106       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
91107       vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
91108       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
91109       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
91110       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
91111 #ifdef VK_ENABLE_BETA_EXTENSIONS
91112       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructureKHR" ) );
91113 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91114       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
91115       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
91116       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
91117       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
91118       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
91119       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
91120       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
91121       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
91122       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
91123       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
91124       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
91125       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
91126       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
91127       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
91128       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
91129       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
91130       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
91131       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
91132       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
91133 #ifdef VK_ENABLE_BETA_EXTENSIONS
91134       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
91135 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91136 #ifdef VK_ENABLE_BETA_EXTENSIONS
91137       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureKHR" ) );
91138 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91139       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
91140       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
91141       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
91142       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
91143 #ifdef VK_ENABLE_BETA_EXTENSIONS
91144       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
91145 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91146       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
91147 #ifdef VK_ENABLE_BETA_EXTENSIONS
91148       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
91149 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91150       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
91151       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
91152       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
91153       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
91154       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
91155       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
91156       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
91157       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
91158 #ifdef VK_ENABLE_BETA_EXTENSIONS
91159       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
91160 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91161       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
91162       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
91163       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
91164       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
91165       vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
91166       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
91167       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
91168       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
91169       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
91170       vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
91171       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
91172       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
91173       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
91174       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
91175       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
91176       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
91177       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
91178       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
91179       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
91180       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
91181       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
91182       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
91183       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
91184       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
91185       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
91186       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
91187       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
91188       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
91189       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
91190       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
91191       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
91192       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
91193       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
91194       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
91195       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
91196       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
91197       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
91198       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
91199       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
91200       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
91201       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
91202       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
91203       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
91204       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
91205       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
91206       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
91207       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
91208       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
91209       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
91210       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
91211       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
91212       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
91213       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
91214       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
91215       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
91216       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
91217       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
91218       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
91219       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
91220       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
91221       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
91222       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
91223       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
91224       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
91225       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
91226       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
91227       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
91228       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
91229       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
91230       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
91231       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
91232       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
91233       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
91234       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
91235       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
91236       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
91237       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
91238       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
91239       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
91240       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
91241       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
91242       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
91243       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
91244       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
91245       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
91246       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
91247       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
91248       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
91249 #ifdef VK_ENABLE_BETA_EXTENSIONS
91250       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
91251 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91252 #ifdef VK_ENABLE_BETA_EXTENSIONS
91253       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
91254 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91255       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
91256       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
91257       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
91258       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
91259 #ifdef VK_ENABLE_BETA_EXTENSIONS
91260       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
91261       if ( !vkCmdWriteAccelerationStructuresPropertiesKHR ) vkCmdWriteAccelerationStructuresPropertiesKHR = vkCmdWriteAccelerationStructuresPropertiesNV;
91262 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91263       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
91264       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
91265       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
91266 #ifdef VK_ENABLE_BETA_EXTENSIONS
91267       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
91268 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91269 #ifdef VK_ENABLE_BETA_EXTENSIONS
91270       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
91271 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91272 #ifdef VK_ENABLE_BETA_EXTENSIONS
91273       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
91274 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91275 #ifdef VK_ENABLE_BETA_EXTENSIONS
91276       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
91277 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91278       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
91279       vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
91280       vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
91281       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
91282       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
91283 #ifdef VK_ENABLE_BETA_EXTENSIONS
91284       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
91285 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91286       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
91287       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
91288       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
91289       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
91290       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
91291       vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
91292       vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
91293       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
91294       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
91295       vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
91296       vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
91297       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
91298       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
91299       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
91300       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
91301       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
91302 #ifdef VK_ENABLE_BETA_EXTENSIONS
91303       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
91304 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91305       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
91306       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
91307       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
91308       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
91309       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
91310       vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
91311       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
91312       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
91313       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
91314       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
91315       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
91316       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
91317       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
91318       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
91319       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
91320       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
91321 #ifdef VK_ENABLE_BETA_EXTENSIONS
91322       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
91323 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91324       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
91325 #ifdef VK_ENABLE_BETA_EXTENSIONS
91326       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
91327       if ( !vkDestroyAccelerationStructureKHR ) vkDestroyAccelerationStructureKHR = vkDestroyAccelerationStructureNV;
91328 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91329       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
91330       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
91331       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
91332 #ifdef VK_ENABLE_BETA_EXTENSIONS
91333       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
91334 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91335       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
91336       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
91337       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
91338       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
91339       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
91340       vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
91341       vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
91342       vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
91343       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
91344       vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
91345       vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
91346       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
91347       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
91348       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
91349       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
91350       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
91351       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
91352       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
91353       vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
91354       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
91355       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
91356       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
91357       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
91358       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
91359       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
91360       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
91361       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
91362       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
91363       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
91364       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
91365       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
91366       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
91367       vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
91368 #ifdef VK_ENABLE_BETA_EXTENSIONS
91369       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
91370 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91371       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
91372 #ifdef VK_ENABLE_BETA_EXTENSIONS
91373       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
91374 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91375       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
91376 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91377       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
91378 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91379       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
91380       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
91381       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
91382       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
91383       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
91384       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
91385       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
91386       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
91387       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
91388       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
91389       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
91390       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
91391       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
91392 #ifdef VK_ENABLE_BETA_EXTENSIONS
91393       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
91394 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91395 #ifdef VK_ENABLE_BETA_EXTENSIONS
91396       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
91397 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91398       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
91399       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
91400       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
91401 #ifdef VK_ENABLE_BETA_EXTENSIONS
91402       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
91403 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91404       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
91405       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
91406       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
91407       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
91408 #ifdef VK_USE_PLATFORM_WIN32_KHR
91409       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
91410 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91411       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
91412       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
91413       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
91414       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
91415       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
91416       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
91417       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
91418       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
91419       vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
91420       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
91421       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
91422 #ifdef VK_USE_PLATFORM_WIN32_KHR
91423       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
91424 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91425       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
91426       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
91427       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
91428       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
91429       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
91430       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
91431       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
91432       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
91433       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
91434       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
91435       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
91436       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
91437       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
91438 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91439       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
91440 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91441       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
91442       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
91443       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
91444 #ifdef VK_USE_PLATFORM_WIN32_KHR
91445       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
91446 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91447 #ifdef VK_USE_PLATFORM_WIN32_KHR
91448       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
91449 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91450 #ifdef VK_USE_PLATFORM_WIN32_KHR
91451       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
91452 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91453       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
91454       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
91455       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
91456       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
91457       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
91458       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
91459       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
91460       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
91461       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
91462 #ifdef VK_ENABLE_BETA_EXTENSIONS
91463       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
91464 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91465       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
91466 #ifdef VK_ENABLE_BETA_EXTENSIONS
91467       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
91468       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
91469 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91470       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
91471       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
91472       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
91473       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
91474       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
91475       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
91476 #ifdef VK_USE_PLATFORM_WIN32_KHR
91477       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
91478 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91479       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
91480       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
91481       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
91482       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
91483       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
91484       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
91485 #ifdef VK_USE_PLATFORM_WIN32_KHR
91486       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
91487 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91488       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
91489 #ifdef VK_USE_PLATFORM_WIN32_KHR
91490       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
91491 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91492       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
91493       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
91494       vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
91495       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
91496       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
91497       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
91498       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
91499       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
91500       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
91501       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
91502       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
91503       vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
91504       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
91505       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
91506       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
91507 #ifdef VK_USE_PLATFORM_WIN32_KHR
91508       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
91509 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91510       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
91511       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
91512       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
91513       vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
91514       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
91515       vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
91516       vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
91517       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
91518       vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
91519       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
91520       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
91521       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
91522       vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
91523       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
91524       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
91525       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
91526       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
91527       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
91528       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
91529       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
91530       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
91531       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
91532       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
91533       vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
91534       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
91535       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
91536       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
91537       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
91538       vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
91539       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
91540       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
91541       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
91542 #ifdef VK_ENABLE_BETA_EXTENSIONS
91543       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
91544 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91545     }
91546 
init(VULKAN_HPP_NAMESPACE::Device deviceCpp)91547     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
91548     {
91549       VkDevice device = static_cast<VkDevice>(deviceCpp);
91550 #ifdef VK_USE_PLATFORM_WIN32_KHR
91551       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
91552 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91553       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
91554       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
91555       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
91556       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
91557       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
91558       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
91559       vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
91560       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
91561       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
91562 #ifdef VK_ENABLE_BETA_EXTENSIONS
91563       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryKHR" ) );
91564       if ( !vkBindAccelerationStructureMemoryKHR ) vkBindAccelerationStructureMemoryKHR = vkBindAccelerationStructureMemoryNV;
91565 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91566       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
91567       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
91568       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
91569       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
91570       vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
91571       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
91572       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
91573       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
91574 #ifdef VK_ENABLE_BETA_EXTENSIONS
91575       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructureKHR" ) );
91576 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91577       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
91578       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
91579       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
91580       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
91581       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
91582       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
91583       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
91584       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
91585       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
91586       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
91587       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
91588       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
91589       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
91590       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
91591       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
91592       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
91593       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
91594       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
91595       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
91596 #ifdef VK_ENABLE_BETA_EXTENSIONS
91597       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
91598 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91599 #ifdef VK_ENABLE_BETA_EXTENSIONS
91600       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureKHR" ) );
91601 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91602       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
91603       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
91604       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
91605       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
91606 #ifdef VK_ENABLE_BETA_EXTENSIONS
91607       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
91608 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91609       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
91610 #ifdef VK_ENABLE_BETA_EXTENSIONS
91611       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
91612 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91613       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
91614       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
91615       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
91616       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
91617       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
91618       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
91619       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
91620       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
91621 #ifdef VK_ENABLE_BETA_EXTENSIONS
91622       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
91623 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91624       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
91625       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
91626       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
91627       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
91628       vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
91629       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
91630       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
91631       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
91632       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
91633       vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
91634       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
91635       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
91636       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
91637       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
91638       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
91639       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
91640       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
91641       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
91642       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
91643       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
91644       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
91645       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
91646       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
91647       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
91648       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
91649       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
91650       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
91651       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
91652       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
91653       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
91654       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
91655       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
91656       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
91657       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
91658       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
91659       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
91660       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
91661       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
91662       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
91663       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
91664       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
91665       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
91666       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
91667       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
91668       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
91669       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
91670       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
91671       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
91672       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
91673       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
91674       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
91675       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
91676       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
91677       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
91678       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
91679       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
91680       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
91681       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
91682       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
91683       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
91684       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
91685       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
91686       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
91687       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
91688       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
91689       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
91690       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
91691       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
91692       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
91693       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
91694       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
91695       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
91696       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
91697       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
91698       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
91699       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
91700       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
91701       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
91702       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
91703       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
91704       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
91705       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
91706       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
91707       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
91708       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
91709       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
91710       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
91711       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
91712 #ifdef VK_ENABLE_BETA_EXTENSIONS
91713       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
91714 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91715 #ifdef VK_ENABLE_BETA_EXTENSIONS
91716       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
91717 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91718       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
91719       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
91720       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
91721       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
91722 #ifdef VK_ENABLE_BETA_EXTENSIONS
91723       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
91724       if ( !vkCmdWriteAccelerationStructuresPropertiesKHR ) vkCmdWriteAccelerationStructuresPropertiesKHR = vkCmdWriteAccelerationStructuresPropertiesNV;
91725 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91726       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
91727       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
91728       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
91729 #ifdef VK_ENABLE_BETA_EXTENSIONS
91730       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
91731 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91732 #ifdef VK_ENABLE_BETA_EXTENSIONS
91733       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
91734 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91735 #ifdef VK_ENABLE_BETA_EXTENSIONS
91736       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
91737 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91738 #ifdef VK_ENABLE_BETA_EXTENSIONS
91739       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
91740 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91741       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
91742       vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
91743       vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
91744       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
91745       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
91746 #ifdef VK_ENABLE_BETA_EXTENSIONS
91747       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
91748 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91749       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
91750       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
91751       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
91752       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
91753       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
91754       vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
91755       vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
91756       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
91757       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
91758       vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
91759       vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
91760       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
91761       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
91762       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
91763       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
91764       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
91765 #ifdef VK_ENABLE_BETA_EXTENSIONS
91766       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
91767 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91768       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
91769       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
91770       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
91771       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
91772       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
91773       vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
91774       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
91775       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
91776       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
91777       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
91778       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
91779       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
91780       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
91781       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
91782       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
91783       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
91784 #ifdef VK_ENABLE_BETA_EXTENSIONS
91785       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
91786 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91787       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
91788 #ifdef VK_ENABLE_BETA_EXTENSIONS
91789       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
91790       if ( !vkDestroyAccelerationStructureKHR ) vkDestroyAccelerationStructureKHR = vkDestroyAccelerationStructureNV;
91791 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91792       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
91793       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
91794       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
91795 #ifdef VK_ENABLE_BETA_EXTENSIONS
91796       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
91797 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91798       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
91799       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
91800       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
91801       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
91802       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
91803       vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
91804       vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
91805       vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
91806       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
91807       vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
91808       vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
91809       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
91810       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
91811       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
91812       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
91813       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
91814       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
91815       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
91816       vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
91817       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
91818       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
91819       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
91820       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
91821       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
91822       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
91823       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
91824       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
91825       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
91826       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
91827       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
91828       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
91829       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
91830       vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
91831 #ifdef VK_ENABLE_BETA_EXTENSIONS
91832       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
91833 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91834       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
91835 #ifdef VK_ENABLE_BETA_EXTENSIONS
91836       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
91837 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91838       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
91839 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91840       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
91841 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91842       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
91843       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
91844       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
91845       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
91846       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
91847       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
91848       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
91849       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
91850       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
91851       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
91852       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
91853       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
91854       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
91855 #ifdef VK_ENABLE_BETA_EXTENSIONS
91856       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
91857 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91858 #ifdef VK_ENABLE_BETA_EXTENSIONS
91859       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
91860 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91861       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
91862       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
91863       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
91864 #ifdef VK_ENABLE_BETA_EXTENSIONS
91865       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
91866 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91867       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
91868       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
91869       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
91870       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
91871 #ifdef VK_USE_PLATFORM_WIN32_KHR
91872       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
91873 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91874       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
91875       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
91876       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
91877       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
91878       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
91879       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
91880       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
91881       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
91882       vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
91883       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
91884       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
91885 #ifdef VK_USE_PLATFORM_WIN32_KHR
91886       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
91887 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91888       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
91889       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
91890       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
91891       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
91892       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
91893       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
91894       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
91895       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
91896       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
91897       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
91898       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
91899       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
91900       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
91901 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91902       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
91903 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91904       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
91905       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
91906       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
91907 #ifdef VK_USE_PLATFORM_WIN32_KHR
91908       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
91909 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91910 #ifdef VK_USE_PLATFORM_WIN32_KHR
91911       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
91912 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91913 #ifdef VK_USE_PLATFORM_WIN32_KHR
91914       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
91915 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91916       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
91917       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
91918       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
91919       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
91920       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
91921       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
91922       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
91923       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
91924       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
91925 #ifdef VK_ENABLE_BETA_EXTENSIONS
91926       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
91927 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91928       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
91929 #ifdef VK_ENABLE_BETA_EXTENSIONS
91930       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
91931       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
91932 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91933       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
91934       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
91935       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
91936       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
91937       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
91938       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
91939 #ifdef VK_USE_PLATFORM_WIN32_KHR
91940       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
91941 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91942       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
91943       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
91944       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
91945       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
91946       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
91947       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
91948 #ifdef VK_USE_PLATFORM_WIN32_KHR
91949       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
91950 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91951       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
91952 #ifdef VK_USE_PLATFORM_WIN32_KHR
91953       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
91954 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91955       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
91956       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
91957       vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
91958       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
91959       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
91960       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
91961       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
91962       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
91963       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
91964       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
91965       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
91966       vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
91967       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
91968       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
91969       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
91970 #ifdef VK_USE_PLATFORM_WIN32_KHR
91971       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
91972 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91973       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
91974       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
91975       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
91976       vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
91977       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
91978       vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
91979       vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
91980       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
91981       vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
91982       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
91983       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
91984       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
91985       vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
91986       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
91987       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
91988       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
91989       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
91990       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
91991       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
91992       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
91993       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
91994       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
91995       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
91996       vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
91997       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
91998       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
91999       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
92000       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
92001       vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
92002       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
92003       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
92004       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
92005 #ifdef VK_ENABLE_BETA_EXTENSIONS
92006       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
92007 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92008     }
92009   };
92010 
92011 } // namespace VULKAN_HPP_NAMESPACE
92012 
92013 namespace std
92014 {
92015 
92016   template <> struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
92017   {
operator ()std::hash92018     std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const& accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT
92019     {
92020       return std::hash<VkAccelerationStructureKHR>{}(static_cast<VkAccelerationStructureKHR>(accelerationStructureKHR));
92021     }
92022   };
92023 
92024   template <> struct hash<VULKAN_HPP_NAMESPACE::Buffer>
92025   {
operator ()std::hash92026     std::size_t operator()(VULKAN_HPP_NAMESPACE::Buffer const& buffer) const VULKAN_HPP_NOEXCEPT
92027     {
92028       return std::hash<VkBuffer>{}(static_cast<VkBuffer>(buffer));
92029     }
92030   };
92031 
92032   template <> struct hash<VULKAN_HPP_NAMESPACE::BufferView>
92033   {
operator ()std::hash92034     std::size_t operator()(VULKAN_HPP_NAMESPACE::BufferView const& bufferView) const VULKAN_HPP_NOEXCEPT
92035     {
92036       return std::hash<VkBufferView>{}(static_cast<VkBufferView>(bufferView));
92037     }
92038   };
92039 
92040   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
92041   {
operator ()std::hash92042     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandBuffer const& commandBuffer) const VULKAN_HPP_NOEXCEPT
92043     {
92044       return std::hash<VkCommandBuffer>{}(static_cast<VkCommandBuffer>(commandBuffer));
92045     }
92046   };
92047 
92048   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
92049   {
operator ()std::hash92050     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandPool const& commandPool) const VULKAN_HPP_NOEXCEPT
92051     {
92052       return std::hash<VkCommandPool>{}(static_cast<VkCommandPool>(commandPool));
92053     }
92054   };
92055 
92056   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
92057   {
operator ()std::hash92058     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const& debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT
92059     {
92060       return std::hash<VkDebugReportCallbackEXT>{}(static_cast<VkDebugReportCallbackEXT>(debugReportCallbackEXT));
92061     }
92062   };
92063 
92064   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
92065   {
operator ()std::hash92066     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const& debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT
92067     {
92068       return std::hash<VkDebugUtilsMessengerEXT>{}(static_cast<VkDebugUtilsMessengerEXT>(debugUtilsMessengerEXT));
92069     }
92070   };
92071 
92072 #ifdef VK_ENABLE_BETA_EXTENSIONS
92073   template <> struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
92074   {
operator ()std::hash92075     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeferredOperationKHR const& deferredOperationKHR) const VULKAN_HPP_NOEXCEPT
92076     {
92077       return std::hash<VkDeferredOperationKHR>{}(static_cast<VkDeferredOperationKHR>(deferredOperationKHR));
92078     }
92079   };
92080 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92081 
92082   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
92083   {
operator ()std::hash92084     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorPool const& descriptorPool) const VULKAN_HPP_NOEXCEPT
92085     {
92086       return std::hash<VkDescriptorPool>{}(static_cast<VkDescriptorPool>(descriptorPool));
92087     }
92088   };
92089 
92090   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
92091   {
operator ()std::hash92092     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSet const& descriptorSet) const VULKAN_HPP_NOEXCEPT
92093     {
92094       return std::hash<VkDescriptorSet>{}(static_cast<VkDescriptorSet>(descriptorSet));
92095     }
92096   };
92097 
92098   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
92099   {
operator ()std::hash92100     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSetLayout const& descriptorSetLayout) const VULKAN_HPP_NOEXCEPT
92101     {
92102       return std::hash<VkDescriptorSetLayout>{}(static_cast<VkDescriptorSetLayout>(descriptorSetLayout));
92103     }
92104   };
92105 
92106   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
92107   {
operator ()std::hash92108     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const& descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT
92109     {
92110       return std::hash<VkDescriptorUpdateTemplate>{}(static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate));
92111     }
92112   };
92113 
92114   template <> struct hash<VULKAN_HPP_NAMESPACE::Device>
92115   {
operator ()std::hash92116     std::size_t operator()(VULKAN_HPP_NAMESPACE::Device const& device) const VULKAN_HPP_NOEXCEPT
92117     {
92118       return std::hash<VkDevice>{}(static_cast<VkDevice>(device));
92119     }
92120   };
92121 
92122   template <> struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
92123   {
operator ()std::hash92124     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeviceMemory const& deviceMemory) const VULKAN_HPP_NOEXCEPT
92125     {
92126       return std::hash<VkDeviceMemory>{}(static_cast<VkDeviceMemory>(deviceMemory));
92127     }
92128   };
92129 
92130   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
92131   {
operator ()std::hash92132     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayKHR const& displayKHR) const VULKAN_HPP_NOEXCEPT
92133     {
92134       return std::hash<VkDisplayKHR>{}(static_cast<VkDisplayKHR>(displayKHR));
92135     }
92136   };
92137 
92138   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
92139   {
operator ()std::hash92140     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayModeKHR const& displayModeKHR) const VULKAN_HPP_NOEXCEPT
92141     {
92142       return std::hash<VkDisplayModeKHR>{}(static_cast<VkDisplayModeKHR>(displayModeKHR));
92143     }
92144   };
92145 
92146   template <> struct hash<VULKAN_HPP_NAMESPACE::Event>
92147   {
operator ()std::hash92148     std::size_t operator()(VULKAN_HPP_NAMESPACE::Event const& event) const VULKAN_HPP_NOEXCEPT
92149     {
92150       return std::hash<VkEvent>{}(static_cast<VkEvent>(event));
92151     }
92152   };
92153 
92154   template <> struct hash<VULKAN_HPP_NAMESPACE::Fence>
92155   {
operator ()std::hash92156     std::size_t operator()(VULKAN_HPP_NAMESPACE::Fence const& fence) const VULKAN_HPP_NOEXCEPT
92157     {
92158       return std::hash<VkFence>{}(static_cast<VkFence>(fence));
92159     }
92160   };
92161 
92162   template <> struct hash<VULKAN_HPP_NAMESPACE::Framebuffer>
92163   {
operator ()std::hash92164     std::size_t operator()(VULKAN_HPP_NAMESPACE::Framebuffer const& framebuffer) const VULKAN_HPP_NOEXCEPT
92165     {
92166       return std::hash<VkFramebuffer>{}(static_cast<VkFramebuffer>(framebuffer));
92167     }
92168   };
92169 
92170   template <> struct hash<VULKAN_HPP_NAMESPACE::Image>
92171   {
operator ()std::hash92172     std::size_t operator()(VULKAN_HPP_NAMESPACE::Image const& image) const VULKAN_HPP_NOEXCEPT
92173     {
92174       return std::hash<VkImage>{}(static_cast<VkImage>(image));
92175     }
92176   };
92177 
92178   template <> struct hash<VULKAN_HPP_NAMESPACE::ImageView>
92179   {
operator ()std::hash92180     std::size_t operator()(VULKAN_HPP_NAMESPACE::ImageView const& imageView) const VULKAN_HPP_NOEXCEPT
92181     {
92182       return std::hash<VkImageView>{}(static_cast<VkImageView>(imageView));
92183     }
92184   };
92185 
92186   template <> struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
92187   {
operator ()std::hash92188     std::size_t operator()(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const& indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT
92189     {
92190       return std::hash<VkIndirectCommandsLayoutNV>{}(static_cast<VkIndirectCommandsLayoutNV>(indirectCommandsLayoutNV));
92191     }
92192   };
92193 
92194   template <> struct hash<VULKAN_HPP_NAMESPACE::Instance>
92195   {
operator ()std::hash92196     std::size_t operator()(VULKAN_HPP_NAMESPACE::Instance const& instance) const VULKAN_HPP_NOEXCEPT
92197     {
92198       return std::hash<VkInstance>{}(static_cast<VkInstance>(instance));
92199     }
92200   };
92201 
92202   template <> struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
92203   {
operator ()std::hash92204     std::size_t operator()(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const& performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT
92205     {
92206       return std::hash<VkPerformanceConfigurationINTEL>{}(static_cast<VkPerformanceConfigurationINTEL>(performanceConfigurationINTEL));
92207     }
92208   };
92209 
92210   template <> struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
92211   {
operator ()std::hash92212     std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevice const& physicalDevice) const VULKAN_HPP_NOEXCEPT
92213     {
92214       return std::hash<VkPhysicalDevice>{}(static_cast<VkPhysicalDevice>(physicalDevice));
92215     }
92216   };
92217 
92218   template <> struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
92219   {
operator ()std::hash92220     std::size_t operator()(VULKAN_HPP_NAMESPACE::Pipeline const& pipeline) const VULKAN_HPP_NOEXCEPT
92221     {
92222       return std::hash<VkPipeline>{}(static_cast<VkPipeline>(pipeline));
92223     }
92224   };
92225 
92226   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
92227   {
operator ()std::hash92228     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineCache const& pipelineCache) const VULKAN_HPP_NOEXCEPT
92229     {
92230       return std::hash<VkPipelineCache>{}(static_cast<VkPipelineCache>(pipelineCache));
92231     }
92232   };
92233 
92234   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
92235   {
operator ()std::hash92236     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineLayout const& pipelineLayout) const VULKAN_HPP_NOEXCEPT
92237     {
92238       return std::hash<VkPipelineLayout>{}(static_cast<VkPipelineLayout>(pipelineLayout));
92239     }
92240   };
92241 
92242   template <> struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
92243   {
operator ()std::hash92244     std::size_t operator()(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const& privateDataSlotEXT) const VULKAN_HPP_NOEXCEPT
92245     {
92246       return std::hash<VkPrivateDataSlotEXT>{}(static_cast<VkPrivateDataSlotEXT>(privateDataSlotEXT));
92247     }
92248   };
92249 
92250   template <> struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
92251   {
operator ()std::hash92252     std::size_t operator()(VULKAN_HPP_NAMESPACE::QueryPool const& queryPool) const VULKAN_HPP_NOEXCEPT
92253     {
92254       return std::hash<VkQueryPool>{}(static_cast<VkQueryPool>(queryPool));
92255     }
92256   };
92257 
92258   template <> struct hash<VULKAN_HPP_NAMESPACE::Queue>
92259   {
operator ()std::hash92260     std::size_t operator()(VULKAN_HPP_NAMESPACE::Queue const& queue) const VULKAN_HPP_NOEXCEPT
92261     {
92262       return std::hash<VkQueue>{}(static_cast<VkQueue>(queue));
92263     }
92264   };
92265 
92266   template <> struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
92267   {
operator ()std::hash92268     std::size_t operator()(VULKAN_HPP_NAMESPACE::RenderPass const& renderPass) const VULKAN_HPP_NOEXCEPT
92269     {
92270       return std::hash<VkRenderPass>{}(static_cast<VkRenderPass>(renderPass));
92271     }
92272   };
92273 
92274   template <> struct hash<VULKAN_HPP_NAMESPACE::Sampler>
92275   {
operator ()std::hash92276     std::size_t operator()(VULKAN_HPP_NAMESPACE::Sampler const& sampler) const VULKAN_HPP_NOEXCEPT
92277     {
92278       return std::hash<VkSampler>{}(static_cast<VkSampler>(sampler));
92279     }
92280   };
92281 
92282   template <> struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
92283   {
operator ()std::hash92284     std::size_t operator()(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const& samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT
92285     {
92286       return std::hash<VkSamplerYcbcrConversion>{}(static_cast<VkSamplerYcbcrConversion>(samplerYcbcrConversion));
92287     }
92288   };
92289 
92290   template <> struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
92291   {
operator ()std::hash92292     std::size_t operator()(VULKAN_HPP_NAMESPACE::Semaphore const& semaphore) const VULKAN_HPP_NOEXCEPT
92293     {
92294       return std::hash<VkSemaphore>{}(static_cast<VkSemaphore>(semaphore));
92295     }
92296   };
92297 
92298   template <> struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
92299   {
operator ()std::hash92300     std::size_t operator()(VULKAN_HPP_NAMESPACE::ShaderModule const& shaderModule) const VULKAN_HPP_NOEXCEPT
92301     {
92302       return std::hash<VkShaderModule>{}(static_cast<VkShaderModule>(shaderModule));
92303     }
92304   };
92305 
92306   template <> struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
92307   {
operator ()std::hash92308     std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceKHR const& surfaceKHR) const VULKAN_HPP_NOEXCEPT
92309     {
92310       return std::hash<VkSurfaceKHR>{}(static_cast<VkSurfaceKHR>(surfaceKHR));
92311     }
92312   };
92313 
92314   template <> struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
92315   {
operator ()std::hash92316     std::size_t operator()(VULKAN_HPP_NAMESPACE::SwapchainKHR const& swapchainKHR) const VULKAN_HPP_NOEXCEPT
92317     {
92318       return std::hash<VkSwapchainKHR>{}(static_cast<VkSwapchainKHR>(swapchainKHR));
92319     }
92320   };
92321 
92322   template <> struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
92323   {
operator ()std::hash92324     std::size_t operator()(VULKAN_HPP_NAMESPACE::ValidationCacheEXT const& validationCacheEXT) const VULKAN_HPP_NOEXCEPT
92325     {
92326       return std::hash<VkValidationCacheEXT>{}(static_cast<VkValidationCacheEXT>(validationCacheEXT));
92327     }
92328   };
92329 }
92330 #endif
92331